Communication-Sensitive Static Dataflow for Parallel Message Passing Applications

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.

[1]  D. Qainlant,et al.  ROSE: Compiler Support for Object-Oriented Frameworks , 1999 .

[2]  Daniel J. Quinlan ROSE: Compiler Support for Object-Oriented Frameworks , 2000, Parallel Process. Lett..

[3]  Rajeev Thakur,et al.  Practical Model-Checking Method for Verifying Correctness of MPI Programs , 2007, PVM/MPI.

[4]  Panos Lekkas,et al.  Network Processors , 2003 .

[5]  D. Martin Swany,et al.  Transformations to Parallel Codes for Communication-Computation Overlap , 2005, ACM/IEEE SC 2005 Conference (SC'05).

[6]  Elliot K. Kolodner,et al.  Automatic Removal of Array Memory Leaks in Java , 2000, CC.

[7]  Sally A. McKee,et al.  METRIC: tracking down inefficiencies in the memory hierarchy via binary rewriting , 2003, International Symposium on Code Generation and Optimization, 2003. CGO 2003..

[8]  Clifford Stein,et al.  Introduction to Algorithms, 2nd edition. , 2001 .

[9]  Yuan Zhang,et al.  Concurrency Analysis for Shared Memory Programs with Textually Unaligned Barriers , 2007, LCPC.

[10]  Xin Yuan,et al.  CC--MPI: a compiled communication capable MPI prototype for ethernet switched clusters , 2003, PPoPP '03.

[11]  Hua Chen,et al.  MPI‐CHECK: a tool for checking Fortran 90 MPI programs , 2003, Concurr. Comput. Pract. Exp..

[12]  Katherine A. Yelick,et al.  Concurrency Analysis for Parallel Programs with Textually Aligned Barriers , 2005, LCPC.

[13]  Stephen F. Siegel Model Checking Nonblocking MPI Programs , 2007, VMCAI.

[14]  Sally A. McKee,et al.  Methods of inference and learning for performance modeling of parallel applications , 2007, PPoPP.

[15]  Rami G. Melhem,et al.  A compiler-based communication analysis approach for multiprocessor systems , 2006, Proceedings 20th IEEE International Parallel & Distributed Processing Symposium.

[16]  Matthieu Martel,et al.  Communication Topology Analysis for Concurrent Programs , 2000, SPIN.

[17]  Lori Pollock,et al.  Implementing an Open 64-based Tool for Improving the Performance of MPI Programs , 2008 .

[18]  Paul D. Hovland,et al.  Data-Flow Analysis for MPI Programs , 2006, 2006 International Conference on Parallel Processing (ICPP'06).

[19]  Xin Yuan,et al.  STAR-MPI: self tuned adaptive routines for MPI collective operations , 2006, ICS '06.

[20]  Susan J. Eggers,et al.  Static Analysis of Barrier Synchronization in Explicitly Parallel Programs , 1994, IFIP PACT.

[21]  Christopher Colby Analyzing the communication topology of concurrent programs , 1995, PEPM '95.