LANS Publications

"An Evaluation of Implementation Options for MPI One-Sided Communication"

W. Gropp and R. Thakur

Preprint ANL/MCS-P1266-0605

Preprint Version: [pdf]

MPI defines one-sided communication operations---put, get, and accumulate---together with three different synchronization mechanisms that define the semantics associated with the initiation and completion of these operations. In this paper, we analyze the requirements imposed by the MPI Standard on any implementation of one-sided communication. We discuss options for implementing the synchronization mechanisms and analyze the cost associated with each. An MPI implementer can use this information to select the implementation method that is best suited (has the lowest cost) for a particular machine environment. We also report on experiments that we ran on a Linux cluster and a Sun SMP to determine the gap between the performance that could be achievable and what is actually achieved with MPI