Automatic datatype generation and optimization

Fredrik Kjolstad, Torsten Hoefler, Marc Snir

Research output: Chapter in Book/Report/Conference proceedingConference contribution

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.

Original languageEnglish (US)
Title of host publicationPPoPP'12 - Proceedings of the 2012 ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
Pages327-328
Number of pages2
DOIs
StatePublished - Mar 22 2012
Event17th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP'12 - New Orleans, LA, United States
Duration: Feb 25 2012Feb 29 2012

Publication series

NameProceedings of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPOPP

Other

Other17th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP'12
CountryUnited States
CityNew Orleans, LA
Period2/25/122/29/12

Keywords

  • Compiler technique
  • Datatypes
  • MPI
  • Refactoring

ASJC Scopus subject areas

  • Software

Fingerprint Dive into the research topics of 'Automatic datatype generation and optimization'. Together they form a unique fingerprint.

  • Cite this

    Kjolstad, F., Hoefler, T., & Snir, M. (2012). Automatic datatype generation and optimization. In PPoPP'12 - Proceedings of the 2012 ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (pp. 327-328). (Proceedings of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPOPP). https://doi.org/10.1145/2145816.2145878