Abstract
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.