Single program, multiple data

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.

The term SPMD was introduced in 1983 and was used to denote two different computational models:

  1. by Michel Auguin (University of Nice Sophia-Antipolis) and François Larbey (Thomson/Sintra), 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
  2. by Frederica Darema (IBM), 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. It is also a prerequisite for research concepts such as active messages and distributed shared memory.

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.