Polynomial-Time Construction of Optimal MPI Derived Datatype Trees

The derived datatype mechanism is a powerful, integral feature of the Message-Passing Interface (MPI) for communicating arbitrarily structured, possibly non-consecutive and non-homogeneous application data. MPI defines a set of derived datatype constructors of increasing generality, which allows to describe arbitrary data layouts in a reasonably compact fashion. The constructors may be applied recursively, leading to tree-like representations of the application data layouts. Efficient derived datatype representations are required for MPI implementations to efficiently access and process structured application data. We study the problem of finding tree-like representations of MPI derived datatypes that are optimal in terms of space and processing cost. More precisely, we consider the so-called MPI Type Reconstruction Problem of determining a least-cost tree-like representation of a given data layout for a given set of constructors. In an additive cost model that accounts for the space consumption of the constructors and lower-bounds the processing costs, we show that the problem can be solved in polynomial time for the full set of MPI datatype constructors. Our algorithm uses dynamic programming and requires the solution of a series of shortest path problems on an incrementally built, directed, acyclic graph.

[1]  Torsten Hoefler,et al.  Application-oriented ping-pong benchmarking: how to assess the real communication overheads , 2014, Computing.

[2]  Torsten Hoefler,et al.  Parallel Zero-Copy Algorithms for Fast Fourier Transform and Conjugate Gradient Using MPI Datatypes , 2010, EuroMPI.

[3]  Torsten Hoefler,et al.  Automatic datatype generation and optimization , 2012, PPoPP '12.

[4]  Jesper Larsson Träff,et al.  Efficient, Optimal MPI Datatype Reconstruction for Vector and Index Types , 2015, EuroMPI.

[5]  Message Passing Interface Forum MPI: A message - passing interface standard , 1994 .

[6]  Torsten Hoefler,et al.  A Transformation to Convert Packing Code to Compact Datatypes for Efficient Zero-Copy Data Transfer , 2011 .

[7]  Torsten Hoefler,et al.  Performance Expectations and Guidelines for MPI Derived Datatypes , 2011, EuroMPI.

[8]  Ronald L. Rivest,et al.  Introduction to Algorithms , 1990 .

[9]  Ronald L. Rivest,et al.  Introduction to Algorithms, 3rd Edition , 2009 .

[10]  Jesper Larsson Träff,et al.  Constructing MPI Input-output Datatypes for Efficient Transpacking , 2008, PVM/MPI.

[11]  William Gropp,et al.  DAME: A Runtime-Compiled Engine for Derived Datatypes , 2015, EuroMPI.

[12]  Hubert Ritzdorf,et al.  Flattening on the Fly: Efficient Handling of MPI Derived Datatypes , 1999, PVM/MPI.

[13]  Jesper Larsson Träff Optimal MPI Datatype Normalization for Vector and Index-block Types , 2014, EuroMPI/ASIA.

[14]  Jesper Larsson Träff,et al.  Implementing a classic: zero-copy all-to-all communication with mpi datatypes , 2014, ICS '14.

[15]  Torsten Hoefler,et al.  MPI datatype processing using runtime compilation , 2013, EuroMPI.

[16]  Robert Latham,et al.  Processing MPI Datatypes Outside MPI , 2009, PVM/MPI.

[17]  Robert B. Ross,et al.  Implementing Fast and Reusable Datatype Processing , 2003, PVM/MPI.