Test-driven coarray parallelization of a legacy Fortran application

  • Authors:
  • Hari Radhakrishnan;Damian W. I. Rouson;Karla Morris;Sameer Shende;Stavros C. Kassinos

  • Affiliations:
  • EXA High Performance Computing, Nicosia, Cyprus;Stanford University, Stanford, California;Sandia National Laboratories, Livermore, California;University of Oregon, Eugene, Oregon;University of Cyprus, Nicosia, Cyprus

  • Venue:
  • SE-HPCCSE '13 Proceedings of the 1st International Workshop on Software Engineering for High Performance Computing in Computational Science and Engineering
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper summarizes a strategy for parallelizing a legacy Fortran 77 program using the object-oriented (OO) and coarray features that entered Fortran in the 2003 and 2008 standards, respectively. OO programming (OOP) facilitates the construction of an extensible suite of model-verification and performance tests that drive the development. Coarray parallel programming facilitates a rapid evolution from a serial application to a parallel application capable of running on multi-core processors and many-core accelerators in shared and distributed memory. We delineate 17 code modernization steps used to refactor and parallize the program, and study the resulting performance. Our scaling studies show that the bottleneck in the performance was due to the implementation of the collective sum procedure. Replacing the sequential procedure with a binary tree procedure improved the scaling performance of the program. This bottleneck will be resolved in the future by new collective procedures in Fortran 2015.