SPMD

SPDM - U računarstvu,SPDM(jedan program,vise podataka(engl.sigle program,multiple data)) je tehnika koja se koristi da bi se postigao paralelizam; to je podkategorija MMID-a.Zadaci su podeljeni i pokrenuti istovremeno na vise procesora sa razlicitim ulazom kako bi brze dobili rezultat.

SPMD nasuprot SIMD

U SPMD, više autonomnih procesora istovremeno izvršava isti program na nezavisnim tačkama, pre nego u engl. lockstep-u koji SIMD nameće različitim podacima. Sa SPMD-om, zadaci se mogu izvršiti na procesorimaopšte namene; SIMD zahteva vektorske procesore da bi manipulisao tokovima podataka. Imajte na umu da ovo dvoje nisu uzajamno isključivi.

Raspodeljena memorija

SPMD obično se odnosi na programiranja poruka na raspodeljenoj memoriji računarske arhitekture. Raspodeljena memorija računara se sastoji od kolekcije nezavisnih računara, nazivaji se čvorovima. Svaki čvor počinje svoj program i komunicira sa drugim čvorovima slanjem i primanjem poruka, pozivajući rutinu slanje/primanje za tu namenu. Sinhronizacija prepreka može takođe biti implemetnirana porukama. Poruke se mogu slati nizom mehanizama komunikacije, kao što su TCP/IP preko Eterneta, ili specijalizovanim brzim vodovima kao što su Myrinet i superkompijuterski vodovi. Serijski delovi programa se sprovode identičnim računanjem na svim čvorovima, pre nego izračunavanjem rezultata na jednom čvoru i slanje drugim čvorovima.
Danas, standardnim interfejsom programer je izolovan iz detalja prenošenja poruka, kao što su PVM i MPI.
Raspodeljena memorija je stil programiranja koji se koristi na paralelnim superračunarima iz domaćeg Beowulf cluster s do najvećih klastera na Teragridu.

Deljena memorija[uredi]

Na mašini sa deljenom memorijom (računar sa nekoliko Procesora koji pristupaju istom memoijskom prostoru), poruka može biti poslata nanošenjem njenog sadržaja u deljenu memoriju. Ovo je često najefikasniji način da se programira deljena memorija računara sa velikim brojem procesora, posebno na NUMA mašinama, gde je memorija lokalna na procesorima i pristup memorije drugog procesora traje duže. SPMD na mašini sa deljenom memorijom je obično implementiran standardim (engl. heavyweightprocesima.
Za razliku od SPMD, deljena memorija multiprocesiranja, takođe se zove SMP, predstavlja programera sa zajedničkim memorijskim prostorom i mogućnosti paralelnog izvršavanja tako što program uzima različite putanje na različitim procesorima.

Kombinacija nivoa paralelizma

Trenutni računari omogućavaju iskorišćavanje mnogih paralelnih režima istovremeno za maksimalni efekat. Raspodeljena opšta memorija koristi MPI koji može da radi na prikupljanju čvorova. Svaki čvor može biti deljena memorija računara i izvršava se paralelno na više procesora koji koriste OpenMP. U okviru svakog procesora, SIMD vektorske instrukcije (obično automatski generisane od kompajlera) i superskalarne instrukcije izvršenja (obično barata transparentno od strane samog procesora), kao što je pipelining i korišćenje višestrukih paralelnih funkcionalnih jedinica, koriste se za maksimalnu brzinu procesora.

Istorija

SPMD je prvi predložio 1983. engl. Michel Auguin (University of Nice Sophia-Antipolis) i engl. François Larbey (Thomson/Sintra) u paralelnom računaru OPSILA.[2] i dalje, 1984. od Frederica Darema na IBM-u za visoko paralelne mašine poput RP3 (IBM-ov istraživački prototip paralelnog procesora), u neobjavljenom IBM-om dopisu.[3] Kasnih 1980ih, bilo je mnogo raspodeljenih računara sa vlasničkim message passing bibliotekama. Prvi SPMD standard bio je PVM. Trenutni de fakto standard je MPI.
Cray-ove paralelne direktive su bile direktan prethodnik za OpenMP.

0 komentari:

Objavi komentar