The semi-automatic parallelisation of scientific application codes using a computer aided parallelisation toolkit

The shared-memory programming model can be an effective way to achieve parallelism on shared memory parallel computers. Historically however, the lack of a programming standard using directives and the limited scalability have affected its take-up. Recent advances in hardware and software technologies have resulted in improvements to both the performance of parallel programs with compiler directives and the issue of portability with the introduction of OpenMP. In this study, the Computer Aided Parallelisation Toolkit has been extended to automatically generate OpenMP-based parallel programs with nominal user assistance. We categorize the different loop types and show how efficient directives can be placed using the toolkit's in-depth interprocedural analysis. Examples are taken from the NAS parallel benchmarks and a number of real-world application codes. This demonstrates the great potential of using the toolkit to quickly parallelise serial programs as well as the good performance achievable on up to 300 processors for hybrid message passing-directive parallelisations.

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

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

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

[4]  Cos S. Ierotheou,et al.  Computer Aided Parallelisation Tools (CAPTools) - Conceptual Overview and Performance on the Parallelisation of Structured Mesh Codes , 1996, Parallel Comput..

[5]  Michael A. Frumkin,et al.  Automatic Generation of OpenMP Directives and Its Application to Computational Fluid Dynamics Codes , 2000, ISHPC.

[6]  Steven W. K. Tjiang,et al.  SUIF: an infrastructure for research on parallelizing and optimizing compilers , 1994, SIGP.

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

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

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

[10]  S. P. Johnson,et al.  Automatic and effective multi-dimensional parallelisation of structured mesh based codes , 2000, Parallel Comput..

[11]  Cos S. Ierotheou,et al.  Computer Aided Parallelization of Unstructured Mesh Codes , 1997, International Conference on Parallel and Distributed Processing Techniques and Applications.

[12]  Yunheung Paek,et al.  Restructuring programs for high-speed computers with Polaris , 1996, 1996 Proceedings ICPP Workshop on Challenges for Parallel Processing.

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

[14]  William Chan,et al.  PARALLEL UNSTEADY TURBOPUMP SIMULATIONS FOR LIQUID ROCKET ENGINES , 2000, ACM/IEEE SC 2000 Conference (SC'00).

[15]  Mark Cross,et al.  CAPLib—a ’thin layer‘ message passing library to support computational mechanics codes on distributed memory parallel system , 2000 .

[16]  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..