Skip to main content

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

Authors: S. Byna, W. D. Gropp, X.-H. Sun, R. Thakur

Date: December, 2003

Venue: The IEEE International Conference on Cluster Computing, 2003, Hong Kong

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

Links