《动物世界》 20180322 花豹柔情
Single-Program Multiple-Data (SPMD) ist ein Programmiermodell der Informatik für parallele Hardware wie Mehrprozessorsysteme. Bei SPMD-Programmen führen alle Prozessoren das gleiche Programm mit unterschiedlichen Daten aus. Die SPMD-Formulierung ist übersichtlich und hardwareunspezifisch.
W?hrend bei sequentieller Verarbeitung Schleifen in der Gr??e der Datens?tze Adressen erzeugen, wird bei SPMD das Programm so formuliert, dass die Daten für jedes Programm über die Programminstanz-ID adressiert werden k?nnten. Oft wird erst zur Laufzeit, aufgrund der vorhandenen Hardware (Cache Gr??e und Assoziativit?t, SIMD Breite, Prozessoranzahl) und Datensatzgr??e, über die Details der Verarbeitung entschieden. Diese Flexibilit?t hat neben der einfachen Formulierung zur Verbreitung beigetragen.
Anwendungsbeispiele für physischen Shared Memory ohne "message passing" sind: "Compute Unified Device Architecture" (CUDA), "Open Computing Language" (OpenCL), "Intel SPMD Program Compiler" (ISPC), "Unified Parallel C" und Shader.