Title
MPI datatype processing using runtime compilation
Abstract
Data packing before and after communication can make up as much as 90% of the communication time on modern computers. Despite MPI's well-defined datatype interface for non-contiguous data access, many codes use manual pack loops for performance reasons. Programmers write access-pattern specific pack loops (e.g., do manual unrolling) for which compilers emit optimized code. In contrast, MPI implementations in use today interpret datatypes at pack time, resulting in high overheads. In this work we explore the effectiveness of using runtime compilation techniques to generate efficient and optimized pack code for MPI datatypes at commit time. Thus, none of the overhead of datatype interpretation is incurred at pack time and pack setup is as fast as calling a function pointer. We have implemented a library called libpack that can be used to compile and (un)pack MPI datatypes. The library optimizes the datatype representation and uses the LLVM framework to produce vectorized machine code for each datatype at commit time. We show several examples of how MPI datatype pack functions benefit from runtime compilation and analyze the performance of compiled pack functions for the data access patterns in many applications. We show that the pack/unpack functions generated by our packing library are seven times faster than those of prevalent MPI implementations for 73% of the datatypes used in a scientific application and in many cases outperform manual pack loops.
Year
DOI
Venue
2013
10.1145/2488551.2488552
EuroMPI
Keywords
Field
DocType
runtime compilation,manual pack loop,pack function,pack time,mpi datatype processing,pack setup,prevalent mpi implementation,optimized pack code,mpi datatypes,mpi implementation,mpi datatype pack function,access-pattern specific pack loop,mpi,interoperability
Function pointer,Interoperability,Commit,Computer science,Parallel computing,Implementation,Compiler,Machine code,Data access
Conference
Citations 
PageRank 
References 
15
0.80
13
Authors
3
Name
Order
Citations
PageRank
Timo Schneider131218.39
Fredrik Kjolstad2938.48
Torsten Hoefler32197163.64