Costing stepwise refinements of parallel programs

  • Authors:
  • Nils Ellmenreich;Christian Lengauer

  • Affiliations:
  • Fakultät für Mathematik und Informatik, Universität Passau, Germany;Fakultät für Mathematik und Informatik, Universität Passau, Germany

  • Venue:
  • Computer Languages, Systems and Structures
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

The idea of the stepwise refinement of a problem specification into an efficient target program dates back to the 1970. With the high-level programming languages available today, it is becoming practical to make every node of the refinement tree executable (and not just the leaves of the tree). Consequently, one can also perform run time experiments with the intermediate programs (not just with the leaves). Our problem domain is scientific computing. We use experiments with the intermediate refinements, written in Haskell, to derive cost predictions for the target programs written in C with MPI. These predictions guide our choices of alternative refinements, as we navigate through the refinement tree. This non-standard use of a cost model introduces two new requirements:*The higher up in the refinement tree a programs is, the less determined its target implementation is, i.e., the less accurate the cost prediction will be. However, the cost data we obtain must (and can) suffice to make a correct choice between alternative refinements, based on a relative comparison of the respective performance predictions. *The costing of an intermediate program happens necessarily on an interpreter, not on the installation on which the target program will run-which is not yet fully determined! Still, the cost model must be calibrated with respect to the real installation-even when it is used for intermediate programs-since our choice of refinement will depend on the characteristics of the real installation. We propose a cost model for the stepwise prototyping of high-performance parallel programs, which satisfies these requirements.