From MPI to OpenSHMEM: Porting LAMMPS
This work details the opportunities and challenges of porting a petascale-capable, MPI-based application LAMMPS to OpenSHMEM. We investigate the major programming challenges stemming from the differences in communication semantics, address space organization, and synchronization operations between the two pro- gramming models. This work provides several approaches to solve those challenges for representative communication patterns in LAMMPS, e.g., by utilizing group synchronization, peer’s buffer status tracking, double buffer strategy and unpacked direct transfer of data. The performance of LAMMPS is evaluated on the Titan HPC system at ORNL. The OpenSHMEM implementations are compared with MPI version in terms of both strong and weak scaling. The results outline that OpenSHMEM provides a rich semantic to implement scalable scientific applications. In addition, the experiments demonstrate that OpenSHMEM can compete with, and often improve on, the optimized MPI implementation.
mythesis.pdf
612.65 KB
Adobe PDF
6a097e93652a003b3935d7b038e8e0ba