updateLine()function. The new
UpdateFunctorencapsulates the now complex task of invoking user code.
Steererobjects 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.
Steerersrun 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.
Writershas been refactored. They now match the
SteererAPI, which is nice for consistency, but the real reason for the change is that the previous APU required the
Simulatorto know about the
Writerand vice versa, because each object would call back the other. This tied the interface of both together, thereby hindering the architecture evolution of
Regioncode 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.