Single program, multiple data
Computing technique used to achieve parallelism / From Wikipedia, the free encyclopedia
Dear Wikiwand AI, let's keep it short by simply answering these key questions:
Can you list the top facts and stats about SPMD?
Summarize this article for a 10 year old
SHOW ALL QUESTIONS
In computing, single program, multiple data (SPMD) is a term that has been used to refer to computational models for exploiting parallelism where-by multiple processors cooperate in the execution of a program in order to obtain results faster.
This article is missing information about GPUs. (November 2019) |
The term SPMD was introduced in 1983 and was used to denote two different computational models:
- by Michel Auguin (University of Nice Sophia-Antipolis) and François Larbey (Thomson/Sintra),[1][2][3] as a “fork-and-join” and data-parallel approach where the parallel tasks (“single program”) are split-up and run simultaneously in lockstep on multiple SIMD processors with different inputs, and
- by Frederica Darema (IBM),[4][5][6] where “all (processors) processes begin executing the same program... but through synchronization directives ... self-schedule themselves to execute different instructions and act on different data” and enabling MIMD parallelization of a given program, and is a more general approach than data-parallel and more efficient than the fork-and-join for parallel execution on general purpose multiprocessors.
The (IBM) SPMD is the most common style of parallel programming and can be considered a subcategory of MIMD in that it refers to MIMD execution of a given (“single”) program.[7] It is also a prerequisite for research concepts such as active messages and distributed shared memory.