Skip to main content

ConferenceDecember, 2003Published

Improving the Performance of MPI Derived Datatypes by Optimizing Memory-Access Cost

Authors
S. Byna, W. D. Gropp, X.-H. Sun, R. Thakur
Venue
The IEEE International Conference on Cluster Computing, 2003, Hong Kong
Date
December, 2003
Type
Conference

Abstract

The MPI Standard supports derived datatypes, which allow users to describe noncontiguous memory layout and communicate noncontiguous data with a single communication function. This feature enables an MPI implementation to optimize the transfer of noncontiguous data. In practice, however, few MPI implementations implement derived datatypes in a way that performs better than what the user can achieve by manually packing data into a contiguous buffer and then calling an MPI function. In this paper, the authors present a technique for improving the performance of derived datatypes by automatically using packing algorithms that are optimized for memory-access cost. The packing algorithms use memory-optimization techniques that the user cannot apply easily without advanced knowledge of the memory architecture. The authors present performance results for a matrix-transpose example that demonstrate that their implementation of derived datatypes significantly outperforms both manual packing by the user and the existing derived-datatype code in the MPI implementation (MPICH).