LibMPNode: An OpenMP runtime for parallel processing across incoherent domains - Lyerly, Robert; Kim, Sang Hoon; Ravindran, Binoy (Proceedings of the 10th International Workshop on Programming Models and Applications for Multicores and Manycores, PMAM 2019, 2019)
In this work we describe libMPNode, an OpenMP runtime designed for efficient multithreaded execution across systems composed of multiple non-cache-coherent domains. Rather than requiring extensive compiler-level transformations or building new programming model abstractions, libMPNode builds on recent works that allow developers to use a traditional shared-memory programming model to build applications that are migratable between incoherent domains. libMPNode handles migrating threads between domains, or nodes, and optimizes many OpenMP mechanisms to reduce cross-node communication. While applications may not scale as written, we describe early experiences in simple code refactoring techniques that help scale performance by only changing a handful of lines of code. We describe and evaluate the current implementation, report on experiences using the runtime, and describe future research directions for multi-domain OpenMP.
Keywords: Cross node communication; Future research directions; Level transformation; Multi-cores; Multithreaded executions; OpenMP; Parallel processing; Shared-memory programming model; non-cache-coherent multicores; OpenMP; scalability