Mi a különbség az OpenMP és az Open MPI között?


Legjobb válasz

Az OpenMP egy programozási platform amely lehetővé teszi a kód párhuzamosítását egy homogén megosztott memória rendszer (pl. többmagos processzor) felett. Például párhuzamosítani lehet egy műveletsort egy többmagos processzor felett, ahol a magok megosztják a memóriát egymás között. Ez a memória tartalmaz gyorsítótárat, RAM-ot, merevlemez-memóriát stb., És a kommunikáció egyszerű és viszonylag olcsó.

Nyissa meg az MPI-t (alapú on Message Passing Interface ) szintén programozási platform, de ehelyett lehetőséget kínál a kód párhuzamosítására egy (nem) homogén elosztott rendszer (pl. szuperszámítógép). Például lehetséges egy teljes program párhuzamosítása ugyanazon a hálózaton keresztül kommunikáló számítógépeken vagy csomópontokon keresztül. Mivel ezek a csomópontok lényegében számítógépek , saját memóriaelrendezéssel és saját magkészlettel rendelkeznek (lásd OpenMP leírást). A csomópontok közötti kommunikáció nehéz lehet, és általában megosztott memóriarendszerekkel összehasonlítva.

Válasz

Az OpenMP egy nyelv-kiterjesztés az adatokkal párhuzamos műveletek (általában a tömbökön át párhuzamos tömbök) kifejezésére. Az MPI egy könyvtár a megosztott semmit nem tartalmazó folyamatok közötti üzenetátadáshoz.

Az OpenMP magasabb szintű absztrakció, mivel célja a program egyidejűségének és adatfolyamának a fordító számára történő bemutatása. Ezzel szemben az MPI egyidejűsége implicit (az összes folyamat párhuzamos), és a üzenetek létrehozzák a számítás adatfolyam-struktúráját.

Bár ez “Az a vélemény, hogy az OpenMP csak megosztott memóriáról szól, semmi sem akadályozza meg az OpenMP megvalósítását abban, hogy az MPI-t a folyamatok és a gazdagépek közötti működésre használja. Az OTOH, a megosztott memória és az üzenetátadás kettőssége azt jelenti, hogy az MPI-megvalósítások gyakran kihasználják a megosztott memóriát ugyanazon a csomóponton lévő rangokért …

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük