Single program multiple data
SPMD ( Single-Program Multiple-Data ) is a computer science programming model for parallel hardware such as multiprocessor systems . In SPMD programs, all processors execute the same program with different data. The SPMD formulation is clear and hardware-unspecific.
While with sequential processing loops generate addresses in the size of the data records, with SPMD the program is formulated in such a way that the data for each program can be addressed via the program instance ID. The processing details are often only decided at runtime based on the existing hardware (cache size and associativity, SIMD width, number of processors) and data record size . In addition to the simple wording, this flexibility has contributed to its spread.
Application examples for physical shared memory without "message passing" are: "Compute Unified Device Architecture" ( CUDA ), "Open Computing Language" ( OpenCL ), "Intel SPMD Program Compiler" (ISPC), " Unified Parallel C " and shaders .