ABSTRACT
In order to provide for type correct implementations of applications in MPI that use derived datatypes to describe complex and possibly heterogeneous data layouts, signature datatypes describing the sequence of basic datatypes comprising the complex data layout in a compact manner have often been proposed and used to communicate and store such data in a type correct way. Signature datatypes are particularly useful in implementations of algorithms for collective communication employing pipelining and/or message-combining.
We (re)examine the properties that signature datatypes must fulfill, and the properties of the MPI collective interfaces that guarantee the existence of proper signature datatypes. The analysis reveals that MPI_Alltoallw does not have the property, and thus that certain non-trivial, type correct implementations of this operation are not easily possible within MPI itself.
We observe that the signature datatype for any derived datatype can be computed in O(n) operations in the number of elements n described by the derived datatype. While this improves on certain earlier approaches, this is still not a satisfactory solution for the cases where large layouts are described by small, derived datatypes. We explain how signature type computation is implemented in a library for advanced datatype programming.
- Enes Bajrović and Jesper Larsson Träff. 2011. Using MPI derived datatypes in numerical libraries. In Recent Advances in Message Passing Interface. 18th European MPI Users’ Group Meeting(Lecture Notes in Computer Science), Vol. 6960. Springer, 29–38.Google ScholarCross Ref
- Ernie Chan, Marcel Heimlich, Avi Purkayastha, and Robert A. van de Geijn. 2007. Collective communication: theory, practice, and experience. Concurrency and Computation: Practice and Experience 19, 13(2007), 1749–1783.Google ScholarDigital Library
- Maxime Crochemore and Wojciech Rytter. 1994. Text Algorithms. Oxford University Press.Google Scholar
- Robert Ganian, Martin Kalany, Stefan Szeider, and Jesper Larsson Träff. 2016. Polynomial-time Construction of Optimal MPI Derived Datatype Trees. In 30th International Parallel and Distributed Processing Symposium (IPDPS). IEEE Computer Society, 638–647.Google Scholar
- G. H. Hardy and E. M. Wright. 1979. An Introduction to the Theory of Numbers(5th ed.). Oxford University Press.Google Scholar
- Torsten Hoefler and Steven Gottlieb. 2010. Parallel Zero-Copy Algorithms for Fast Fourier Transform and Conjugate Gradient Using MPI Datatypes. In Recent Advances in Message Passing Interface. 17th European MPI Users’ Group Meeting(Lecture Notes in Computer Science), Vol. 6305. Springer, 132–141.Google Scholar
- Alexander Huck, Jan-Patrick Lehr, Sebastian Kreutzer, Joachim Protze, Christian Terboven, Christian H. Bischof, and Matthias S. Müller. 2018. Compiler-aided Type Tracking for Correctness Checking of MPI Applications. In 2nd IEEE/ACM International Workshop on Software Correctness for HPC Applications (CORRECTNESS@SC). 51–58.Google Scholar
- Tomohiro I, Wataru Matsubara, Kouji Shimohira, Shunsuke Inenaga, Hideo Bannai, Masayuki Takeda, Kazuyuki Narisawa, and Ayumi Shinohara. 2015. Detecting regularities on grammar-compressed strings. Information and Computation 240 (2015), 74–89.Google ScholarDigital Library
- Donald E. Knuth, James H. Morris Jr., and Vaughan R. Pratt. 1977. Fast Pattern Matching in Strings. SIAM J. Comput. 6, 2 (1977), 323–350.Google ScholarDigital Library
- MPI Forum. 2015. MPI: A Message-Passing Interface Standard. Version 3.1. www.mpi-forum.org.Google ScholarDigital Library
- Joachim Protze, Tobias Hilbrich, Andreas Knüpfer, Bronis R. de Supinski, and Matthias S. Müller. 2012. Holistic Debugging of MPI Derived Datatypes. In 26th IEEE International Parallel and Distributed Processing Symposium (IPDPS). 354–365.Google Scholar
- Rajeev Thakur, William D. Gropp, and Rolf Rabenseifner. 2005. Improving the Performance of Collective Operations in MPICH. International Journal on High Performance Computing Applications 19 (2005), 49–66.Google ScholarDigital Library
- Jesper Larsson Träff. 2014. Optimal MPI datatype normalization for vector and index-block types. In 21st European MPI Users’ Group Meeting (EuroMPI/ASIA). ACM, 33–38.Google ScholarDigital Library
- Jesper Larsson Träff. 2016. A Library for Advanced Datatype Programming. In 23rd European MPI Users’ Group Meeting (EuroMPI). ACM, 98–107.Google ScholarDigital Library
- Jesper Larsson Träff. 2018. Practical, Distributed, Low Overhead Algorithms for Irregular Gather and Scatter Collectives. Parallel Computing 75 (2018), 100–117.Google ScholarCross Ref
- Jesper Larsson Träff. 2019. Decomposing Collectives for Exploiting Multi-lane Communication. arXiv:1910.13373.Google Scholar
- Jesper Larsson Träff and Sascha Hunold. 2019. Cartesian Collective Communication. In 48th International Conference on Parallel Processing (ICPP). 48:1–48:11.Google Scholar
- Jesper Larsson Träff and Antoine Rougier. 2014. Zero-copy, hierarchical Gather is not possible with MPI Datatypes and Collectives. In 21st European MPI Users’ Group Meeting (EuroMPI/ASIA). ACM, 39–44.Google ScholarDigital Library
- Jesper Larsson Träff, Antoine Rougier, and Sascha Hunold. 2014. Implementing a classic: Zero-copy all-to-all communication with MPI datatypes. In 28th ACM International Conference on Supercomputing (ICS). ACM, 135–144.Google ScholarDigital Library
Recommendations
Formalizing Type Operations Using the “Image” Type Constructor
In this paper we introduce a new approach to formalizing certain type operations in type theory. Traditionally, many type constructors in type theory are independently axiomatized and the correctness of these axioms is argued semantically. In this paper ...
Typed compilation of recursive datatypes
Standard ML employs an opaque (or generative) semantics of datatypes, in which every datatype declaration produces a new type that is different from any other type, including other identically defined datatypes. A natural way of accounting for this is ...
Typed compilation of recursive datatypes
TLDI '03: Proceedings of the 2003 ACM SIGPLAN international workshop on Types in languages design and implementationStandard ML employs an opaque (or generative) semantics of datatypes, in which every datatype declaration produces a new type that is different from any other type, including other identically defined datatypes. A natural way of accounting for this is ...
Comments