Parallel programming model

This is an old revision of this page, as edited by 200.120.221.221 (talk) at 12:23, 7 September 2010 (Example parallel programming models). 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, programming languages, compilers, libraries, communications systems, and parallel I/O. Due to the difficulties in automatic parallelization today, 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 categorized for two kinds of systems: shared-memory system and distributed-memory system, though the lines between them are largely blurred nowadays.

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

Example parallel programming models

Models

Libraries

Languages

Unsorted

Other research-level models are:

References

See also