Parallel programming model: Difference between revisions

Content deleted Content added
m Introduction and some formatting
Moved list of languages to 'List of concurrent and parallel programming languages'
Line 6:
 
==Main classifications and paradigms==
 
Classifications of parallel programming models can be divided broadly into two areas: process interaction and problem decomposition.
 
===Process interaction===
 
Process interaction relates to the mechanisms by which parallel processes are able to communicate with each other. The most common forms of interaction are shared memory and message passing, but it can also be implicit.
 
====Shared memory====
Line 26 ⟶ 30:
 
===Problem decomposition===
 
Any parallel program is comprised of simultaneously executing processes, problem decomposition relates to the way in which these processes are formulated. This classification may also be referred to as [[algorithmic skeleton]]s or parallel programming paradigms.
 
====Task parallelism====
Line 43 ⟶ 49:
 
== Example parallel programming models==
{{Create-list|date=February 2010}}
 
===Models===
* [[Algorithmic skeleton|Algorithmic Skeletons]]
* Components
Line 51 ⟶ 55:
* Remote Method Invocation
* Workflows
 
===Libraries===
* [[POSIX Threads]]
* [[Message Passing Interface|MPI]]
* [[Global Arrays]]
* [[SHMEM]]
* [[Parallel Virtual Machine|PVM]]
* [[Intel Threading Building Blocks|TBB]]
* [[Kernel for Adaptative, Asynchronous Parallel and Interactive programming|KAAPI]]
 
===Languages===
* [[Ada (programming language)|Ada]]
* [[Ateji PX]]
* [[C*]]
* [[Cilk]]
* [[Charm++]]
* [[Partitioned global address space]] languages:
** [[Co-array Fortran]],
** [[Unified Parallel C]],
** Titanium
* [[High Performance Fortran]]
* [[Haskell (programming language)|Haskell]]
* [[Occam (programming language)|Occam]]
* [[Event-driven programming]] & [[Hardware Description Language]]s:
** [[Verilog]]
** [[VHDL]]
** [[SystemC]]
** [[ParC]] Parallel C++ through language extensions
* [[Ease (programming language)|Ease]]
* [[Erlang (programming language)|Erlang]]
* [[Linda (coordination language)|Linda coordination language]]
* [[Oz (programming language)|Oz]]
* [[CUDA]]
* [[OpenCL]]
* [[AccelerEyes|Jacket]]
* [[NESL]]
* [[Scala (programming language)|Scala]]
 
===Unsorted===
* [[OpenMP]]
* [[Global Arrays]]
* [[Intel Ct]]
* [[Pervasive DataRush]]
* [[ProActive]]
* [[Parallel Random Access Machine]]
* [[Stream processing]]
* [[Ambric#Architecture_and_Programming_Model|Structural Object Programming Model (SOPM)]]
* [[Pipeline (software)|Pipelining]]
* [[ZPL (programming language)|ZPL]]
 
Other research-level models are:
* Cray's [[Chapel programming language|Chapel]]
* Sun’s [[Fortress (programming language)|Fortress]]
* IBM’s [[X10 (programming language)|X10]]
 
==See also==