Parallel programming model

This is an old revision of this page, as edited by 68.92.212.251 (talk) at 13:50, 28 December 2005. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

A parallel programming model is a set of software technologies to express parallel algorithms and match applications with the underlying parallel systems. It encloses the areas of applications, languages, compilers, libraries, communication systems, and parallel I/O. People have to choose a proper parallel programming model or a form of mixture of them to develop their parallel applications on a particular platform.

Parallel models are implemented in several ways: as libraries invoked from traditional sequential languages, as language extensions, or complete new execution models. They are also roughly categoried for two kinds of systems: shared-memory system and distributed-memory system, though the lines between them are largely blured nowadays.

A program model is usually judged by its expressibility and simplicity, which are by all meanings conflicting factors. The ultimate goal is to improve productivity of programming.

Currenty main-stream parallel programming models are:

Other reseach-level models are:

  • Cray’s Chapel,
  • Sun’s Fortress,
  • IBM’s X10