Component-based programming techniques for coarse-grained parallelism

  • Authors:
  • Jörg Dümmler;Thomas Rauber;Gudula Rünger

  • Affiliations:
  • Chemnitz University of Technology;University Bayreuth;Chemnitz University of Technology

  • Venue:
  • Proceedings of the 19th High Performance Computing Symposia
  • Year:
  • 2011

Quantified Score

Hi-index 0.01

Visualization

Abstract

Components can be used to implement coarse-grained parallelism on large parallel systems. A parallel component is a piece of parallel code that can be executed in parallel on a set of processors or cores and has a predefined interface to be coupled with other components. Depending on the internal programming and memory model, a component may consist of computation and communication phases or, alternatively, of shared memory code. The interfaces are used for data exchange. More complex parallel programs are built up using parallel components and a flexible component interaction structure. In this article, the programming with parallel components for designing efficient programs for parallel execution platforms with a distributed address space is discussed and a mechanism for the specification of parallel components with communication interfaces is presented. The execution of these components can be adapted to the architectural characteristics of multicore clusters with their specific communication structure. The approach is applied to application programs for the solution of large systems of ordinary differential equations.