gentryx/libgeodecomp

Improve latency hiding in HpxSimulator

Opened this issue · 0 comments

In short: we should replace sequential code which enforces implicit barriers by futurized code where the runtime is able to extract the maximum degree of parallelism and improve efficiency.

Right now all PatchAccepters (the sending end of the HpxPatchLink) get invoked one after another. Packing grid data also happens sequentially. This could/should all happen in parallel and the following update of the ghost zone should be attached as a continuation. The code path that needs to be "futurized" is in VanillaStepper::updateGhost(). The remainder of the stepper should be fine, as the majority of the work is handled in update1() and that's already parallelized in the UpdateFunctor.

The resulting code should likely live in a new HpxStepper class to avoid clashes with the current VanillaStepper.