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),[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
  2. 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.

  1. ^ M. Auguin, F. Larbey (1983). "OPSILA: an advanced SIMD for numerical analysis and signal processing". Microcomputers: Developments in Industry, Business, and Education / Ninth EUROMICRO Symposium on Microprocessing and Microprogramming, Pp 311-318 Madrid, September 13–16, 1983.
  2. ^ M. Auguin, F. Labrey (1985). "A Multi-processor SIMD Machine: OPSILA". K. Waldschmidt and B. Myhrhaug Eds, @EUROMICRO, 1985, Elsevier Science Publishers B. V. – North Holland.
  3. ^ Auguin, M.; Boeri, F.; Dalban, J.P; Vincent-Carrefour, A. (1987). "Experience Using a SIMD/SPMD Multiprocessor Architecture". Multiprocessing and Microprogramming. 21 (1–5): 171–178. doi:10.1016/0165-6074(87)90034-2.
  4. ^ Darema, Frederica (2001). "SPMD model: past, present and future, Recent Advances in Parallel Virtual Machine and Message Passing Interface". 8th European PVM/MPI Users' Group Meeting, Santorini/Thera, Greece, September 23–26, 2001. Lecture Notes in Computer Science 2131.
  5. ^ F. Darema-Rogers, D. A. George, V. A. Norton, and G. F. Pfister (1985). "A VM Parallel Environment". IBM/RC11225 (1/23/85) and IBM/RC11381(9/19/85).{{cite journal}}: CS1 maint: multiple names: authors list (link)
  6. ^ Darema, F.; George, D.A.; Norton, V.A.; Pfister, G.F. (1988). "A single-program-multiple-data computational model for EPEX/FORTRAN". Journal of Parallel Computing. 7: 11–24. doi:10.1016/0167-8191(88)90094-4.
  7. ^ Flynn, Michael (1972). "Some Computer Organizations and Their Effectiveness" (PDF). IEEE Transactions on Computers. C-21 (9): 948–960. doi:10.1109/TC.1972.5009071. S2CID 18573685.
  8. ^ Flynn, Michael J. (September 1972). "Some Computer Organizations and Their Effectiveness" (PDF). IEEE Transactions on Computers. C-21 (9): 948–960. doi:10.1109/TC.1972.5009071.