Betriebssysteme · Institut für Systemarchitektur · Fakultät Informatik · TU Dresden

02. 06. 2017

A C++ based MPI-enabled Tasking Framework to Efficiently Parallelize Fast Multipode Methods for Molecular Dynamics

David Haensel

Forschungszentrum Jülich

Modern molecular dynamic simulations steadily shift the scaling bottleneck from computation towards communication. The main bottleneck of such simulations are long-range interactions that cannot be computed from local information only. Any algorithm computing the equivalent of such long-range pairwise interactions needs global information by design which leads to global communication. Especially for strong scaling with only a few particles per core such Coulomb solvers are already communication/synchronization-bound. To tackle these issues we are developing a parallel Fast Multipole Method (FMM) in modern C++. To reduce parallelization overhead, e.g. synchronization points or load imbalance, algorithm-aware strategies have to be applied. Such measures will improve performance, especially for a tasking approach with dependency resolving and work scheduling. Implementing those specific strategies in a scheduler and dependency resolver of a third party library could be quite challenging. Also, relying solely on universal dynamic scheduling implementations could affect performance unfavorably. The current C++ language standard (C++11) offers several robust features for parallel intranode programming. With the help of those standardized C++ features, we added a tasking layer to our FMM library. In this talk we want to present, which C++11 features are most suited for tasking and how we apply and tailor such schemes for our purposes.
12. Mar 2018
· Copyright © 2001-2010 Operating Systems Group, TU Dresden | Impressum ·