Content deleted Content added
m →Shared memory: added comma |
m cr |
||
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
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
==Classification of parallel programming models==
Line 38:
==Terminology==
Parallel programming models are closely related to [[model of computation|models of computation]]. A model of parallel computation is an [[abstraction]] used to analyze the cost of computational processes, but it does not necessarily need to be practical, in that it can be implemented efficiently in hardware and/or software. A programming model, in contrast, does specifically imply the practical considerations of hardware and software implementation.<ref>Skillicorn, David B., and Domenico Talia, Models and languages for parallel computation, ACM Computing Surveys, 30.2
A parallel programming language may be based on one or a combination of programming models. For example, [[High Performance Fortran]] is based on shared-memory interactions and data-parallel problem decomposition, and [[Go (programming language)|Go]] provides mechanism for shared-memory and message-passing interaction.
|