Analyzing the communication topology of concurrent programs
PEPM '95 Proceedings of the 1995 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Introduction to Algorithms
Communication Topology Analysis for Concurrent Programs
Proceedings of the 7th International SPIN Workshop on SPIN Model Checking and Software Verification
Static Analysis of Barrier Synchronization in Explicitly Parallel Programs
PACT '94 Proceedings of the IFIP WG10.3 Working Conference on Parallel Architectures and Compilation Techniques
CC--MPI: a compiled communication capable MPI prototype for ethernet switched clusters
Proceedings of the ninth ACM SIGPLAN symposium on Principles and practice of parallel programming
Network Processors
Transformations to Parallel Codes for Communication-Computation Overlap
SC '05 Proceedings of the 2005 ACM/IEEE conference on Supercomputing
Data-Flow Analysis for MPI Programs
ICPP '06 Proceedings of the 2006 International Conference on Parallel Processing
STAR-MPI: self tuned adaptive routines for MPI collective operations
Proceedings of the 20th annual international conference on Supercomputing
Methods of inference and learning for performance modeling of parallel applications
Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programming
Model checking nonblocking MPI programs
VMCAI'07 Proceedings of the 8th international conference on Verification, model checking, and abstract interpretation
A compiler-based communication analysis approach for multiprocessor systems
IPDPS'06 Proceedings of the 20th international conference on Parallel and distributed processing
Concurrency analysis for parallel programs with textually aligned barriers
LCPC'05 Proceedings of the 18th international conference on Languages and Compilers for Parallel Computing
Practical model-checking method for verifying correctness of MPI programs
PVM/MPI'07 Proceedings of the 14th European conference on Recent Advances in Parallel Virtual Machine and Message Passing Interface
FACT: fast communication trace collection for parallel applications through program slicing
Proceedings of the Conference on High Performance Computing Networking, Storage and Analysis
Formal analysis of message passing
VMCAI'11 Proceedings of the 12th international conference on Verification, model checking, and abstract interpretation
Leveraging C++ meta-programming capabilities to simplify the message passing programming model
EuroMPI'11 Proceedings of the 18th European MPI Users' Group conference on Recent advances in the message passing interface
Formal analysis of MPI-based parallel programs
Communications of the ACM
Communication-centric optimizations by dynamically detecting collective operations
Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming
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
Bamboo: translating MPI applications to a latency-tolerant, data-driven form
SC '12 Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis
MPI and compiler technology: a love-hate relationship
EuroMPI'12 Proceedings of the 19th European conference on Recent Advances in the Message Passing Interface
A sound reduction of persistent-sets for deadlock detection in MPI applications
SBMF'12 Proceedings of the 15th Brazilian conference on Formal Methods: foundations and applications
Abstractions and Middleware for Petascale Computing and Beyond
International Journal of Distributed Systems and Technologies
Ownership passing: efficient distributed memory programming on multi-core systems
Proceedings of the 18th ACM SIGPLAN symposium on Principles and practice of parallel programming
Hybrid approach for data-flow analysis of MPI programs
Proceedings of the 27th international ACM conference on International conference on supercomputing
Static analysis of concurrent programs by adapted vector clock
Proceedings of the International C* Conference on Computer Science and Software Engineering
Globalizing selectively: shared-memory efficiency with address-space separation
SC '13 Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis
Hi-index | 0.02 |
Message passing is a very popular style of parallel programming, used in a wide variety of applications and supported by many APIs, such as BSD sockets, MPI and PVM. Its importance has motivated significant amounts of research on optimization and debugging techniques for such applications. Although this work has produced impressive results, it has also failed to fulfill its full potential. The reason is that while prior work has focused on runtime techniques, there has been very little work on compiler analyses that understand the properties of parallel message passing applications and use this information to improve application performance and quality of debuggers.This paper presents a novel compiler analysis framework that extends dataflow to parallel message passing applications on arbitrary numbers of processes. It works on an extended control-flow graph that includes all possible inter-process interactions of any numbers of processes. This enables dataflow analyses built on top of this framework to incorporate information about the application's parallel behavior and communication topology. The parallel dataflow framework can be instantiated with a variety of specific dataflow analyses as well as abstractions that can tune the accuracy of communication topology detection against its cost.The proposed framework bridges the gap between prior work on parallel runtime systems and sequential dataflow analyses, enabling new transformations, runtime optimizations and bug detection tools that require knowledge of the application's communication topology. We instantiate this framework with two different symbolic analyses and show how these analyses can detect different types of communication patterns, which enables the use of dataflow analyses on a wide variety of real applications.