Content deleted Content added
No edit summary |
m Reverted good faith edits by 112.133.243.242 (talk): rv - not needed (HG) (3.3.3) |
||
Line 1:
In [[computing]], a '''parallel programming model''' is an [[Abstraction (software engineering)|abstraction]] of [[parallel computing|parallel computer]] architecture, with which it is convenient to express [[algorithms]] and their composition in [[Computer program|programs]]. The value of a programming model can be judged on its ''generality'': how well a range of different problems can be expressed for a variety of different architectures, and its ''performance'': how efficiently the compiled programs can execute.<ref>Skillicorn, David B., "Models for practical parallel computation", International Journal of Parallel Programming, 20.2 133-158 (1991), https://www.ida.liu.se/~chrke55/papers/modelsurvey.pdf</ref> The implementation of a parallel programming model can take the form of a [[Library (computing)|library]] invoked from a [[sequential programming|sequential language]], as an extension to an existing language, or as an entirely new language.
Consensus around a particular programming model is important because it leads to different parallel computers being built with support for the model, thereby facilitating [[Software portability|portability]] of software. In this sense, programming models are referred to as ''[[bridging model|bridging]]'' between hardware and software.<ref name="Valiant1990">Leslie G. Valiant, "A bridging model for parallel computation", Communications of the ACM, Volume 33, Issue 8, August, 1990, pages 103--111.</ref>
|