Implementing Fast and Reusable Datatype Processing
|Title||Implementing Fast and Reusable Datatype Processing|
|Year of Publication||2003|
|Authors||Ross, RB, Miller, N, Gropp, WD|
|Series Title||Proc. EuroPVM/MPI 2003|
Methods for describing structured data are a key aid in application development. The MPI standard defines a system for creating \"MPI Types\" at run time and using these types when passing messages, performing RMA operations, and accessing data in files. Similar capabilities are available in other middleware as well. Unfortunately, many implementations perform poorly when processing these structured data types. This leads application developers to avoid these components entirely, instead performing any necessary processing of data by hand. In this paper we describe an internal representation of types that aids in maintaining the highest possible performance during processing. The performance of this system, used in the MPICH2 implementation, is compared to well-written manual processing routines and other available MPI implementations. We show that performance for most tested types is comparable to manual processing. Finally we point to additional opportunities for optimization and other software where this implementation could be leveraged.