ABSTRACT
We present a library providing functionality beyond the MPI standard for manipulating application data layouts described by MPI derived datatypes. The main contributions are: a) Constructors for several, new datatypes for describing application relevant data layouts. b) A set of extent-free constructors that eliminate the need for type resizing. c) New navigation and query functionality for accessing individual data elements in layouts described by datatypes, and for comparing layouts. d) Representation of datatype signatures by explicit, associated signature types, as well as functionality for explicit generation of type maps. As a simple application, we implement reduction collectives on noncontiguous, but homogeneous derived datatypes. Some of the proposed functionality could be implemented more efficiently within an MPI library.
- E. Bajrović and J. L. Träff. Using MPI derived datatypes in numerical libraries. In Recent Advances in Message Passing Interface. 18th European MPI Users' Group Meeting, volume 6960 of Lecture Notes in Computer Science, pages 29--38. Springer, 2011. Google ScholarDigital Library
- J. Bruck, C.-T. Ho, S. Kipnis, E. Upfal, and D. Weathersby. Efficient algorithms for all-to-all communications in multiport message-passing systems. IEEE Transactions on Parallel and Distributed Systems, 8(11):1143--1156, 1997. Google ScholarDigital Library
- S. Byna, W. D. Gropp, X.-H. Sun, and R. Thakur. Improving the performance of MPI derived datatypes by optimizing memory-access cost. In IEEE International Conference on Cluster Computing (CLUSTER 2003), pages 412--419, 2003.Google ScholarCross Ref
- A. Carpen-Amarie, S. Hunold, and J. L. Träff. MPI derived datatypes: Performance expectations and status quo. arXiv:1607.00178, 2016.Google Scholar
- A. Carpen-Amarie, S. Hunold, and J. L. Träff. On the expected and observed communication performance with MPI derived datatypes. In 23rd European MPI Users' Group Meeting (EuroMPI). ACM, 2016. To appear. Google ScholarDigital Library
- R. Ganian, M. Kalany, S. Szeider, and J. L. Träff. Polynomial-time construction of optimal MPI derived datatype trees. In 30th International Parallel and Distributed Processing Symposium (IPDPS). IEEE Computer Society, 2016.Google ScholarCross Ref
- D. S. Goujon, M. Michel, J. Peeters, and J. E. Devaney. AutoMap and AutoLink: Tools for communicating complex and dynamic data-structures using MPI. In Network-Based Parallel Computing. Communication, Architecture, and Applications, volume 1362 of Lecture Notes in Computer Science, pages 98--109. Springer, 1998. Google ScholarDigital Library
- W. D. Gropp, T. Hoefler, R. Thakur, and J. L. Träff. Performance expectations and guidelines for MPI derived datatypes: a first analysis. In Recent Advances in Message Passing Interface. 18th European MPI Users' Group Meeting, volume 6960 of Lecture Notes in Computer Science, pages 150--159. Springer, 2011. Google ScholarDigital Library
- R. Hillson and M. Iglewski. C++2MPI: A software tool for automatically generating MPI datatypes from C++ classes. In Parallel Computing in Electrical Engineering (PARELEC'00), pages 13--17, 2000. Google ScholarDigital Library
- T. Hoefler and M. Snir. Writing parallel libraries with MPI - common practice, issues, and extensions. In Recent Advances in the Message Passing Interface -18th European MPI Users' Group Meeting (EuroMPI), pages 345--355, 2011. Google ScholarDigital Library
- M. Kalany and J. L. Träff. Efficient, optimal MPI datatype reconstruction for vector and index types. In 22nd European MPI Users' Group Meeting (EuroMPI). ACM, 2015. Google ScholarDigital Library
- D. Kimpe, D. Goodell, and R. B. Ross. MPI datatype marshalling: A case study in datatype equivalence. In Recent Advances in Parallel Virtual Machine and Message Passing Interface. 17th European PVM/MPI Users' Group Meeting, volume 6305 of Lecture Notes in Computer Science, pages 82--91. Springer, 2010. Google ScholarDigital Library
- 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-Champain, 2011. Retrieved from http://hdl.handle.net/2142/26452, last visited on 03/01/2016.Google Scholar
- J. M. Kunkel and T. Ludwig. Visualization of MPI(-IO) datatypes. In Applications, Tools and Techniques on the Road to Exascale Computing, Proceedings of the conference ParCo, pages 473--480, 2011.Google Scholar
- F. G. Mir and J. L. Träff. Constructing MPI input-output datatypes for efficient transpacking. In Recent Advances in Parallel Virtual Machine and Message Passing Interface. 15th European PVM/MPI Users' Group Meeting, volume 5205 of Lecture Notes in Computer Science, pages 141--150. Springer, 2008. Google ScholarDigital Library
- MPI Forum. MPI: A Message-Passing Interface Standard. Version 3.1, June 4th 2015. www.mpi-forum.org.Google Scholar
- T. Prabhu and W. Gropp. DAME: A runtime-compiled engine for derived datatypes. In 22nd European MPI Users' Group Meeting (EuroMPI), 2015. Google ScholarDigital Library
- J. Protze, T. Hilbrich, A. Knüpfer, B. R. de Supinski, and M. S. Müller. Holistic debugging of MPI derived datatypes. In 26th IEEE International Parallel and Distributed Processing Symposium (IPDPS), pages 354--365, 2012. Google ScholarDigital Library
- E. Renault. Extended MPICC to generate MPI derived datatypes from C datatypes automatically. In Recent Advances in Parallel Virtual Machine and Message Passing Interface. 14th European PVM/MPI Users' Group Meeting, volume 4757 of Lecture Notes in Computer Science, pages 307--314. Springer, 2007. Google ScholarDigital Library
- E. Renault and C. Parrot. Automatic generation of MPI derived datatypes from C datatypes with MPIPP. In 19th International Conference on Parallel and Distributed Computing Systems (ISCA PDCS), pages 44--50, 2006.Google Scholar
- E. Renault and C. Parrot. MPI pre-processor: Generating MPI derived datatypes from C datatypes automatically. In International Conference on Parallel Processing Workshops (ICPP), pages 248--256, 2006. Google ScholarDigital Library
- R. Ross, N. Miller, and W. D. Gropp. Implementing fast and reusable datatype processing. In Recent Advances in Parallel Virtual Machine and Message Passing Interface. 10th European PVM/MPI Users' Group Meeting, volume 2840 of Lecture Notes in Computer Science, pages 404--413. Springer, 2003.Google ScholarCross Ref
- R. B. Ross, R. Latham, W. Gropp, E. L. Lusk, and R. Thakur. Processing MPI datatypes outside MPI. In Recent Advances in Parallel Virtual Machine and Message Passing Interface. 16th European PVM/MPI Users' Group Meeting, volume 5759 of Lecture Notes in Computer Science, pages 42--53. Springer, 2009. Google ScholarDigital Library
- T. Schneider, F. Kjolstad, and T. Hoefler. MPI datatype processing using runtime compilation. In Recent Advances in the Message Passing Interface, 20th European MPI Users's Group Meeting (EuroMPI), pages 19--24, 2013. Google ScholarDigital Library
- W. Tansey and E. Tilevich. Efficient automated marshaling of C++ data structures for MPI applications. In 22nd IEEE International Symposium on Parallel and Distributed Processing (IPDPS), pages 1--12, 2008.Google ScholarCross Ref
- J. L. Träff. Alternative, uniformly expressive and more scalable interfaces for collective communication in MPI. Parallel Computing, 38(1-2):26--36, 2012. Google ScholarDigital Library
- J. L. Träff. Optimal MPI datatype normalization for vector and index-block types. In 21st European MPI Users' Group Meeting (EuroMPI/ASIA), pages 33--38. ACM, 2014. Google ScholarDigital Library
- J. L. Träff, R. Hempel, H. Ritzdorf, and F. Zimmermann. Flattening on the fly: efficient handling of MPI derived datatypes. In Recent Advances in Parallel Virtual Machine and Message Passing Interface. 6th European PVM/MPI Users' Group Meeting, volume 1697 of Lecture Notes in Computer Science, pages 109--116. Springer, 1999. Google ScholarDigital Library
- J. L. Träff, F. D. Lübbe, A. Rougier, and S. Hunold. Isomorphic, sparse MPI-like collective communication operations for parallel stencil computations. In 22nd European MPI Users' Group Meeting (EuroMPI). ACM, 2015. Google ScholarDigital Library
- J. L. Träff and A. Rougier. MPI collectives and datatypes for hierarchical all-to-all communication. In 21st European MPI Users' Group Meeting (EuroMPI/ASIA), pages 27--32. ACM, 2014. Google ScholarDigital Library
- J. L. Träff and A. Rougier. Zero-copy, hierarchical gather is not possible with MPI datatypes and collectives. In 21st European MPI Users' Group Meeting (EuroMPI/ASIA), pages 39--44. ACM, 2014. Google ScholarDigital Library
- J. L. Träff, A. Rougier, and S. Hunold. Implementing a classic: Zero-copy all-to-all communication with MPI datatypes. In 28th ACM International Conference on Supercomputing (ICS), pages 135--144. ACM, 2014. Google ScholarDigital Library
Recommendations
System f-omega with equirecursive types for datatype-generic programming
POPL '16: Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming LanguagesTraversing an algebraic datatype by hand requires boilerplate code which duplicates the structure of the datatype. Datatype-generic programming (DGP) aims to eliminate such boilerplate code by decomposing algebraic datatypes into type constructor ...
System f-omega with equirecursive types for datatype-generic programming
POPL '16Traversing an algebraic datatype by hand requires boilerplate code which duplicates the structure of the datatype. Datatype-generic programming (DGP) aims to eliminate such boilerplate code by decomposing algebraic datatypes into type constructor ...
Arity-generic datatype-generic programming
PLPV '10: Proceedings of the 4th ACM SIGPLAN workshop on Programming languages meets program verificationSome programs are doubly-generic. For example, map is datatype-generic in that many different data structures support a mapping operation. A generic programming language like Generic Haskell can use a single definition to generate map for each type. ...
Comments