Single Program Multiple Data. This is the most common way to organize a parallel program, especially on MPP computers. The idea is that a single program is written and loaded onto each node of a parallel computer. Each copy of the single program runs independently (aside from coordination events), so the instruction streams executed on each node can be completely different. The specific path through the code is in part selected by the node ID.
(adj.) Single program, multiple data; a category sometimes added to Flynn's taxonomy to describe programs made up of many instances of a single type of process, each executing the same code independently. SPMD can be viewed either as an extension of SIMD, or as a restriction of MIMD. See also process group, SISD.
Single Program, Multiple Data -- The same program is executed on different items of data, but the operations need not be performed in lockstep as in SIMD. MPI is an SPMD programming environment, whereas PVM is full MIMD.
A parallel programming model in which different processors execute the same program on different sets of data.
Same program, multiple data.
Single-Program-Multiple-Data. A refinement of the MIMD category of Flynn's taxonomy.
Single program multiple data. Implementations of HP MPI where an application is completely contained in a single executable. SPMD applications begin with the invocation of a single process called the master. The master then spawns some number of identical child processes. The master and the children all run the same executable.
Single Program, Multiple Data. A generalization of the SIMD data-parallel programming, SPMD further loosens the synchronicity bonds that restrict the operation of the various processors and simply specifies what program all processors must run, but not which instruction each should be executing at any particular time. Data distribution, however, is still a key concern; in fact, another commonly used term for SPMD is data decomposition -- this alludes to the fact that the overall dataset is going to be decomposed, resulting in a part of it going to each of the participating processors, each of which will run the same code against their own individual sections.
See single program, multiple data.