Parallel programming model
|
|
This article is in a list format that may be better presented using prose. You can help by converting this article to prose, if appropriate. Editing help is available. (October 2008) |
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.
[edit] Example parallel programming models
|
|
This article may be better presented in list format to meet Wikipedia's quality standards. Please help improve this article by converting it into a stand-alone or embedded list. (February 2010) |
Libraries
Languages
- Ada
- C*
- Cilk
- Charm++
- Partitioned global address space languages:
- Co-array Fortran,
- Unified Parallel C,
- Titanium
- High Performance Fortran
- Haskell
- Occam
- Event-driven programming & Hardware Description Languages:
- Ease
- Erlang
- Linda coordination language
- Oz
- CUDA
- OpenCL
- Jacket
- NESL
- Scala
Unsorted
- OpenMP
- Global Arrays
- Intel Ct
- Pervasive DataRush
- ProActive
- Parallel Random Access Machine
- Stream processing
- Structural Object Programming Model (SOPM)
- Pipelining
- ZPL
Other research-level models are:
[edit] References
- H. Shan and J. Pal Singh. A comparison of MPI, SHMEM, and Cache-Coherent Shared Address Space Programming Models on a Tightly-Coupled Multiprocessor. International Journal of Parallel Programming, 29(3), 2001.
- H. Shan and J. Pal Singh. Comparison of Three Programming Models for Adaptive Applications on the Origin 2000. Journal of Parallel and Distributed Computing, 62:241–266, 2002.
- About structured parallel programming: Davide Pasetto and Marco Vanneschi. Machine independent Analytical models for cost evaluation of template--based programs, University of Pisa, 1996
[edit] See also
|
||||||||||||||||||||||||||||||||