An Evaluation of Threaded Models for a Classical MD Proxy Application

Pietro Cicotti, Susan M. Mniszewski, Laura Carrington
2014 2014 Hardware-Software Co-Design for High Performance Computing  
Exascale systems will have many-core nodes, less memory capacity per core than today's systems, and a large degree of performance variability between cores. All these conditions challenge bulk synchronous SPMD models in which execution is typically synchronous and communication is based on buffers and ghost regions. We explore the design of a multithreaded MD code to evaluate several tradeoffs that arise when converting an MPI application into a hybrid multithreaded application, to address the
more » ... forementioned constraints of future architectures. Using OpenMP and PThreads, we implemented several variants of CoMD, a molecular dynamics proxy application. We found that in CoMD, duplicating some of the work to avoid race conditions is an easier and more scalable solution than using atomic updates; that data allocation and placement can be controlled to some extent with a hybrid MPI+threads approach, though an explicit NUMA API to control locality may be desirable; and finally that dynamically scheduling the work within a process can mitigate the impact of performance variability among cores and preserve most of the performance, especially when compared to bulk synchronous implementations such as the MPI reference.
doi:10.1109/co-hpc.2014.6 dblp:conf/sc/CicottiMC14 fatcat:riskgm35ujfxzjnv65svdsdvky