Abstract
Many high performance applications spend considerable time packing noncontiguous data into contiguous communication buffers. MPI Datatypes provide an alternative by describing noncontiguous data layouts. This allows sophisticated hardware to retrieve data directly from application data structures. However, packing codes in real-world applications are often complex and specifying equivalent datatypes is difficult, time-consuming, and error prone. We present an algorithm that automates the transformation. We have implemented the algorithm in a tool that transforms packing code to MPI Datatypes, and evaluated it by transforming 90 packing codes from the NAS Parallel Benchmarks. The transformation allows easy porting of applications to new machines that benefit from datatypes, thus improving programmer productivity.
- Automatic datatype generation tool download. URL http://people.csail.mit.edu/fred/datatypes. Last Accessed 12/17/2011.Google Scholar
- D. Bailey, T. Harris, W. Saphir, R. Wijngaart, A. Woo, and M. Yarrow. The NAS parallel benchmarks 2.0. Technical report, NASA, 1995.Google Scholar
- F. Kjolstad, T. Hoefler, and M. Snir. A transformation to convert packing code to compact datatypes for efficient zero-copy data transfer. Technical report, University of Illinois at Urbana-Champaign, 2011.Google Scholar
- R. Ross, N. Miller, and W. Gropp. Implementing fast and reusable datatype processing. In EuroPVM/MPI, 2003.Google Scholar
Cross Ref
- G. Santhanaraman, J. Wu, and D. K. Panda. Zero-copy MPI derived datatype communication over InfiniBand. In EuroPVM/MPI, 2004.Google Scholar
Cross Ref
- W. Tansey and E. Tilevich. Efficient automated marshaling of C++ data structures for MPI applications. In IPDPS, 2008.Google Scholar
Cross Ref
Index Terms
Automatic datatype generation and optimization
Recommendations
Automatic datatype generation and optimization
PPoPP '12: Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel ProgrammingMany high performance applications spend considerable time packing noncontiguous data into contiguous communication buffers. MPI Datatypes provide an alternative by describing noncontiguous data layouts. This allows sophisticated hardware to retrieve ...
Extended MPICC to generate MPI derived datatypes from C datatypes automatically
PVM/MPI'07: Proceedings of the 14th European conference on Recent Advances in Parallel Virtual Machine and Message Passing InterfaceMore and more MPI programs are developed by people who are not experienced parallel programmers; many others are automatically generated by specific frameworks. For both cases, MPI derived datatypes are difficult to handle. This article presents MPIECC, ...
Automatic memory optimizations for improving MPI derived datatype performance
EuroPVM/MPI'06: Proceedings of the 13th European PVM/MPI User's Group conference on Recent advances in parallel virtual machine and message passing interfaceMPI derived datatypes allow users to describe noncontiguous memory layout and communicate noncontiguous data with a single communication function. This powerful feature enables an MPI implementation to optimize the transfer of noncontiguous data. In ...







Comments