Event graph visualization for debugging large applications
SPDT '96 Proceedings of the SIGMETRICS symposium on Parallel and distributed tools
Algorithms on strings, trees, and sequences: computer science and computational biology
Algorithms on strings, trees, and sequences: computer science and computational biology
Semicoarsening Multigrid on Distributed Memory Machines
SIAM Journal on Scientific Computing
Breaking a Time-and-Space Barrier in Constructing Full-Text Indices
FOCS '03 Proceedings of the 44th Annual IEEE Symposium on Foundations of Computer Science
Interprocedural slicing using dependence graphs
ACM SIGPLAN Notices - Best of PLDI 1979-1999
Tool Support for Inspecting the Code Quality of HPC Applications
SE-HPC '07 Proceedings of the 3rd International Workshop on Software Engineering for High Performance Computing Applications
Engineering a compressed suffix tree implementation
WEA'07 Proceedings of the 6th international conference on Experimental algorithms
Editorial: Special section: Tools for program development and analysis in computational science
Future Generation Computer Systems
Network-theoretic classification of parallel computation patterns
International Journal of High Performance Computing Applications
Delta Send-Recv for Dynamic Pipelining in MPI Programs
CCGRID '12 Proceedings of the 2012 12th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (ccgrid 2012)
Runtime detection and optimization of collective communication patterns
Proceedings of the 21st international conference on Parallel architectures and compilation techniques
Design and analysis of data management in scalable parallel scripting
SC '12 Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis
Pattern-independent detection of manual collectives in MPI programs
Euro-Par'12 Proceedings of the 18th international conference on Parallel Processing
MPI and compiler technology: a love-hate relationship
EuroMPI'12 Proceedings of the 19th European conference on Recent Advances in the Message Passing Interface
Multiclass classification of distributed memory parallel computations
Pattern Recognition Letters
Hi-index | 0.00 |
A high-level understanding of communication behavior can facilitate performance optimization of HPC applications. In particular, MPI communication patterns can serve as the basis of code transformations that substitute more efficient operations for those originally used by the application developer. We present a novel algorithm for identifying MPI communication patterns and a mechanism to perform source code transformations based on the observed patterns. Our transformation mechanism, implemented within the ROSE compiler framework, modifies the abstract syntax tree based on static analysis that confirms the generalizability of the patterns that we detect. Our results demonstrate the efficiency of our approach. Our pattern detection algorithm, which we evaluate with realistic applications using traces from up to 128 processors as well as with simple benchmarks, has low overhead as input or job size grows. Our transformation mechanism quickly optimizes MPI source code by replacing MPI code fragments for collective operations through highly optimized native MPI functions and by increasing the overlapping of communication and computation.