Data-Flow Analysis for MPI Programs

Message passing via MPI is widely used in single-program, multiple-data (SPMD) parallel programs. Existing data-flow frameworks do not model the semantics of message-passing SPMD programs, which can result in less precise and even incorrect analysis results. We present a data-flow analysis framework for performing interprocedural analysis of message-passing SPMD programs. The framework is based on the MPI-ICFG representation, which is an interprocedural control-flow graph (ICFG) augmented with communication edges between possible send and receive pairs and partial context sensitivity. We show how to formulate nonseparable data-flow analyses within our framework using reaching constants as a canonical example. We also formulate and provide experimental results for the nonseparable analysis, activity analysis. Activity analysis is a domain-specific analysis used to reduce the computation and storage requirements for automatically differentiated MPI programs. Automatic differentiation is important for application domains such as climate modeling, electronic device simulation, oil reservoir simulation, medical treatment planning and computational economics to name a few. Our experimental results show that using the MPI-ICFG data-flow analysis framework improves the precision of activity analysis and as a result significantly reduces memory requirements for the automatically differentiated versions of a set of parallel benchmarks, including some of the NAS parallel benchmarks

[1]  Jens Krinke,et al.  Context-sensitive slicing of concurrent programs , 2003, ESEC/FSE-11.

[2]  William Gropp,et al.  User''s Guide for mpich , 1996 .

[3]  Dale R. Shires,et al.  Program Flow Graph Construction For Static Analysis of MPI Programs , 1999, PDPTA.

[4]  Scott A. Smolka,et al.  Data flow analysis of distributed communicating processes , 1990, International Journal of Parallel Programming.

[5]  Uwe Naumann Reducing the Memory Requirement in Reverse Mode Automatic Differentiation by Solving TBR Flow Equations , 2002, International Conference on Computational Science.

[6]  Griewank,et al.  On automatic differentiation , 1988 .

[7]  Lori A. Clarke,et al.  Data flow analysis of concurrent systems that use the rendezvous model of synchronization , 1991, TAV4.

[8]  John M. Mellor-Crummey,et al.  FIAT: A Framework for Interprocedural Analysis and Transfomation , 1993, LCPC.

[9]  Calvin Lin,et al.  Client-Driven Pointer Analysis , 2003, SAS.

[10]  Message Passing Interface Forum MPI: A message - passing interface standard , 1994 .

[11]  Thomas Kaminski,et al.  Applying TAF to generate efficient derivative code of Fortran 77‐95 programs , 2003 .

[12]  Jingde Cheng Dependence analysis of parallel and distributed programs and its applications , 1997, Proceedings. Advances in Parallel and Distributed Computing.

[13]  David A. Padua,et al.  Basic compiler algorithms for parallel programs , 1999, PPoPP '99.

[14]  Christian Bischof,et al.  Adifor 2.0: automatic differentiation of Fortran 77 programs , 1996 .

[15]  Christian H. Bischof,et al.  E cient Derivative Codes through AutomaticDi erentiation and Interface Contraction : AnApplication in Biostatistics , 1995 .

[16]  Steven W. K. Tjiang,et al.  Sharlit—a tool for building optimizers , 1992, PLDI '92.

[17]  Jens Krinke,et al.  Static slicing of threaded programs , 1998, PASTE '98.

[18]  Lori A. Clarke,et al.  Flow analysis for verifying properties of concurrent software systems , 2004, TSEM.

[19]  Greg Burns,et al.  LAM: An Open Cluster Environment for MPI , 2002 .

[20]  Mark Stephenson,et al.  Bidwidth analysis with application to silicon compilation , 2000, PLDI '00.

[21]  Christèle Faure,et al.  Extension of Odyssée to the MPI Library -Direct mode- , 1999 .

[22]  Barbara G. Ryder,et al.  A safe approximate algorithm for interprocedural aliasing , 1992, PLDI '92.

[23]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[24]  Andrew Lumsdaine,et al.  A Component Architecture for LAM/MPI , 2003, PVM/MPI.

[25]  Christian H. Bischof,et al.  Implementation of automatic differentiation tools , 2002, PEPM '02.

[26]  Thomas W. Reps,et al.  Precise interprocedural chopping , 1995, SIGSOFT FSE.

[27]  Bernhard Steffen,et al.  Parallelism for Free : E cient and Optimal Bitvector Analyses for Parallel Programs , 1996 .

[28]  Uwe Naumann,et al.  "To be recorded" analysis in reverse-mode automatic differentiation , 2005, Future Gener. Comput. Syst..

[29]  Michael T. Heath,et al.  Automatic Differentiation of Parallel Programs , 1997 .

[30]  SkjellumAnthony,et al.  A high-performance, portable implementation of the MPI message passing interface standard , 1996 .

[31]  William Gropp,et al.  Users guide for mpich, a portable implementation of MPI , 1996 .

[32]  David H. Bailey,et al.  The Nas Parallel Benchmarks , 1991, Int. J. High Perform. Comput. Appl..

[33]  U. Naumann,et al.  TBR Analysis in Reverse-Mode Automatic Differentiation , 2003 .

[34]  Message P Forum,et al.  MPI: A Message-Passing Interface Standard , 1994 .

[35]  Paul D. Hovland,et al.  Representation-independent program analysis , 2005, PASTE '05.

[36]  Katherine A. Yelick,et al.  Optimizing Parallel SPMD Programs , 1994, LCPC.

[37]  Lori A. Clarke,et al.  A flexible architecture for building data flow analyzers , 1995, Proceedings of IEEE 18th International Conference on Software Engineering.

[38]  Dirk Grunwald,et al.  Data flow equations for explicitly parallel programs , 1993, PPOPP '93.