LibGeoDecomp 0.2.0 is now ready for general consumption. This release focuses on scalability and robustness. Release slides are here. Short changelog:

LibGeoDecomp 0.2.0 chibi artwork by Jed Henry
cell API
The new API delivers increased efficiency and expressiveness, but requires user to specify stencil shape and API flavor its model expects. See here for an example. Aside from reduced overhead for accesses to neighboring cells, the new interface also allows the user to update whole rows of cells within a single method call. For this the cell needs to provide a static updateLine() function. The new UpdateFunctor encapsulates the now complex task of invoking user code.
live steering
Users can now use Steerer objects for computational steering. Previously the only input objects were the Initializers, which are responsible for setting up the grid at the start of the simulation. Steerers run fully parallel and may modify the grid in every time step. Of course excessive usage will slow down the application. But as long as no/little steering takes place, the overhead will be hardly noticable.
Writer API
The API of the Writers has been refactored. They now match the Steerer API, which is nice for consistency, but the real reason for the change is that the previous APU required the Simulator to know about the Writer and vice versa, because each object would call back the other. This tied the interface of both together, thereby hindering the architecture evolution of HiParSimulator.
new Region
Quite surprisingly, the previous Region code proved to be a scalability issue on Tsubame 2.0. The new code is not just better suited for GPUs, it is also 10x more memory efficient, and even runs 4x to 11x faster.
Our most flexible and scalable MPI parallelization has been reimplemented and has received a number of bug fixes. It has proven to run stable with O(1000) MPI processes and supports various, user-selectable domain decompositions.

News archive »

last modified: Thu Apr 14 15:33:52 2016 +0000