Content deleted Content added
copyedit, wikify |
|||
Line 1:
In computer software, a '''parallel programming model''' is a model for writing [[parallel program]]s which can be compiled and executed. The value of a programming model
Consensus
==Main classifications and paradigms==
Line 28:
===Problem decomposition===
{{clear}}
{{Flynn's Taxonomy}}
====Task parallelism====
{{Main|Task parallelism}}
A task-parallel model focuses on processes, or threads of execution. These processes will often be behaviourally distinct, which emphasises the need for communication. Task parallelism is a natural way to express message-passing communication. It is usually classified as [[MIMD]]/[[Flynn's taxonomy#MPMD|MPMD]] or [[MISD]].
====Data parallelism====
{{Main|Data parallelism}}
A data-parallel model focuses on performing operations on a data set which is usually regularly structured in an array. A set of tasks will operate on this data, but independently on separate partitions. In a shared memory system, the data will be accessible to all, but in a distributed-memory system it will divided between memories and worked on locally. Data parallelism is usually classified as [[SIMD]]/[[SPMD]].
====Idealised Parallel Systems====
|