Computer Aided Parallelisation Tools (CAPTools) - Conceptual Overview and Performance on the Parallelisation of Structured Mesh Codes

Computer Aided Parallelisation Tools (CAPTools) is a toolkit designed to automate as much as possible of the process of parallelising scalar FORTRAN 77 codes. The toolkit combines a very powerful dependence analysis together with user supplied knowledge to build an extremely comprehensive and accurate dependence graph. The initial version has been targeted at structured mesh computational mechanics codes (eg. heat transfer, Computational Fluid Dynamics (CFD)) and the associated simple mesh decomposition paradigm is utilised in the automatic code partition, execution control mask generation and communication call insertion. In this, the first of a series of papers [1–3] the authors discuss the parallelisations of a number of case study codes showing how the various component tools may be used to develop a highly efficient parallel implementation in a few hours or days. The details of the parallelisation of the TEAMKE1 CFD code are described together with the results of three other numerical codes. The resulting parallel implementations are then tested on workstation clusters using PVM and an i860-based parallel system showing efficiencies well over 80%.

[1]  A. Ecer,et al.  Parallel Computational Fluid Dynamics, '91 , 1992 .

[2]  William Pugh,et al.  A practical algorithm for exact array dependence analysis , 1992, CACM.

[3]  William Pugh,et al.  The Omega test: A fast and practical integer programming algorithm for dependence analysis , 1991, Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing '91).

[4]  Guy Robinson Parallel computational fluid dynamics on unstructured meshes using algebraic multigrid , 1993 .

[5]  Erich Ortner,et al.  Solution of the Navier-Stokes equations on a massively parallel transputer system , 1992 .

[6]  François Irigoin Interprocedural analyses for programming environments , 1993 .

[7]  Martin G. Everett,et al.  Exploitation of Symbolic Information in Interprocedural Dependence Analysis , 1996, Parallel Comput..

[8]  Cos S. Ierotheou,et al.  Parallelisation of a novel 3D hybrid structured/unstructured grid CFD production code , 1995, HPCN Europe.

[9]  Ken Kennedy,et al.  Automatic decomposition of scientific programs for parallel execution , 1987, POPL '87.

[10]  Cos S. Ierotheou,et al.  Automatic Parallel Code Generation for Message Passing on Distributed Memory Systems , 1996, Parallel Comput..

[11]  Ken Kennedy,et al.  Interactive Parallel Programming using the ParaScope Editor , 1991, IEEE Trans. Parallel Distributed Syst..

[12]  Stephen Philip Johnson Mapping numerical software onto distributed memory parallel systems , 1992 .

[13]  M. Cross,et al.  Mapping structured grid three-dimensional CFD codes onto parallel architectures , 1991 .

[14]  S. P. Johnson,et al.  Integrating User Knowledge with Information from Parallelisation Tools to Facilitate the Automatic Generation of Efficient Parallel FORTRAN Code , 1996, Parallel Comput..

[15]  M. Cross,et al.  Mapping enthalpy-based solidification algorithms onto vector and parallel architectures , 1989 .

[16]  S. P. Johnson,et al.  Automatic Code Generation of Ovelapped Communications in a Parallelisation Tool , 1997, Parallel Comput..

[17]  Barbara M. Chapman,et al.  Programming in Vienna Fortran , 1992, Sci. Program..

[18]  S. Patankar Numerical Heat Transfer and Fluid Flow , 2018, Lecture Notes in Mechanical Engineering.

[19]  P. Feautrier Parametric integer programming , 1988 .

[20]  Utpal Banerjee,et al.  Dependence analysis for supercomputing , 1988, The Kluwer international series in engineering and computer science.

[21]  Michael Gerndt,et al.  SUPERB: A tool for semi-automatic MIMD/SIMD parallelization , 1988, Parallel Comput..

[22]  Ken Kennedy,et al.  PFC: A Program to Convert Fortran to Parallel Form , 1982 .