Parallelizing a large scientific code - methods, issues, and concerns

  • Authors:
  • E. A. Carmona

  • Affiliations:
  • Weapons Laboratory, Kirtland AFB, NM

  • Venue:
  • Proceedings of the 1989 ACM/IEEE conference on Supercomputing
  • Year:
  • 1989

Quantified Score

Hi-index 0.00

Visualization

Abstract

Objectives of this study were to develop techniques and methods for effective analysis of large codes; to determine the feasibility of parallelizing an existing large scientific code; and to estimate potential speedups attainable, and associated tradeoffs in design complexity and work effort, if the code were parallelized by redesign for a distributed memory system (NCube, iPSC hypercube), or straight serial translation targetting a shared memory system (CRAY2, SEQUENT). MACH2, the code under study, is a 2-D magnetohydrodynamic (MHD) finite difference code used to simulate plasma flow switches and nuclear radiation. A taxonomy relating functional levels of a code to levels of parallelism is presented and used as a model for analyzing existing large codes. It is shown that although parallelizing lower level code segments (e.g. algorithms and loops) on shared memory systems is generally easier to accomplish, in some cases an entire large code is most easily parallelized at a high level; via domain and functional decomposition. Also a multi-decomposition scheme is introduced in which acceptable load balances can be achieved for functional decompositions and heterogeneous data partitionings.