We present an efficient Finite Volume solver for the shallow water equations using an actor extension of the X10 programming language, ActorX10, as programming model. Each actor is assigned to a Cartesian patch of the computational grid. Using the actor's finite state machine to control patch updates, we realize lazy activation of patches, only when a propagating wave enters the respective patch. Overlapping of communication and computation in the fully non-central actor-based control, as well as careful optimization (esp. vectorization) of kernels leads to high performance and parallel efficiency in shared and distributed memory. Benefits of lazy activation are demonstrated via reduced CPU hours for a benchmark scenario.
«
We present an efficient Finite Volume solver for the shallow water equations using an actor extension of the X10 programming language, ActorX10, as programming model. Each actor is assigned to a Cartesian patch of the computational grid. Using the actor's finite state machine to control patch updates, we realize lazy activation of patches, only when a propagating wave enters the respective patch. Overlapping of communication and computation in the fully non-central actor-based control, as well a...
»