Using shared arrays in message-driven parallel programs - Miller, Phil; Becker, Aaron; Kalé, Laxmikant (Parallel computing, 2012)
► We describe a discipline of access modes for deterministic usage of shared arrays. ► These modes can be statically enforced with standard tools. ► We present the combination of message-driven and shared array models of parallelism. ► This model is demonstrated through coupling a new algorithm to existing code. This paper describes a safe and efficient combination of the object-based message-driven execution and shared array parallel programming models. In particular, we demonstrate how this combination engenders the composition of loosely coupled parallel modules safely accessing a common shared array. That loose coupling enables both better flexibility in parallel execution and greater ease of implementing multi-physics simulations. As a case study, we describe how the parallelization of a new method for molecular dynamics simulation benefits from both of these advantages. We also describe a system of typed handle objects that embed some of the determinacy constraints of the Multiphase Shared Array programming model in the C++ type system, to catch some violations at compile time. The combined programming model communicates in terms of these handles as a natural means of detecting and preventing errors.