Message Passing Interface

Message Passing Interface (MPI) (rozhranie na výmenu správ) poskytuje prenosný a silný medziprocesorový komunikačný mechanizmus, ktorý zjednodušuje niektoré úskalia komunikácie medzi stovkami a až tisícami paralelne pracujúcich procesorov. Používa sa zvačša pri počítačových blokoch – zoskupeniach (computer clusters).

História upraviť

MPI štandard bol vytvorený zhruba 60-timi ľuďmi zo 40-tich organizácii zväčša z USA a Európy. Do MPI bolo zaangažovaných väčšina veľkých obchodníkov so simultánnymi počítačmi spolu s výskumníkmi z univerzít, vládnych laboratórií a priemyslu. Štandardizačný proces začal na seminári o prenose správ a distribuovanom pamäťovom prostredí sponzorovanom centrom pre výskum paralelného programovania v roku 1992 vo Wiliamsburgu. MPI bol rozšírený v roku 1996 rovnakou skupinou pod názvom MPI2. MPI špecifikácia nebola schválená žiadnou dôležitou štandardizačnou organizáciou, napriek tomu je to dnes de facto štandard pre komunikáciu medzi procesormi s distribuovaným pamäťovým systémom, teda takmer vo všetkých HPC platformách (HPC - vysokovýkonné výpočtové systémy).

Špecifikácia upraviť

Štandardná špecifikácia MPI definuje knižnicu podprogramov, ktoré obsahujú komunikačné funkcie na prenos údajov medzi procesormi, funkcie vykonávajúce kolektívne operácie nad nejakou množinou procesorov, a mnohé iné funkcie, ktoré sa zaoberajú prenosom správ a dynamickým vytváraním nových procesov. Existuje vysoko portabilná implementácia MPI štandardu - MPICH, pre rôzne paralelné a distribuované počítačové prostredia. OpenMP model je vhodný pre multiprocesorové systémy so zdieľanou pamäťou. Pomocou špeciálnych príkazov umožňuje označiť niektoré oblasti kódu, ktoré je možné vykonávať paralelne. Oba modely podporujú paralelné programovanie v jazykoch Fortran a C/C++ [1] alebo v akomkoľvek jazyku, ktorý je schopný použiť dynamické knižnice vytvorené pre tieto jazyky.

Program napísaný pre MPI je ľahko prenositeľný medzi platformami s rôznymi implementáciami MPI bez potreby prepísania zdrojového kódu. Aj keď sa tomuto štandardu darí úspešne spĺňať ciele spomenuté vyššie, často je kritizované za implementáciu na veľmi nízkej úrovni a náročnej použiteľnosti. Napriek tomu je to jedna z kľúčových častí paralelného programovania. Dnes už MPI podporuje aj systémy so zdieľanou pamäťou, tak ako OpenMP, čo ale nebolo jeho pôvodným cieľom. Výhodou MPI je teda ľahká prenositeľnosť ale aj vysoká rýchlosť, pretože každá implementácia MPI je v princípe optimalizovaná na hardvér na ktorom je spustená.

MPI je často porovnávaná s PVM (Parallel Virtual Machine), čo je taktiež softvérový nástroj pre podporu paralelného programovania vyvinutý v 1989 a bol to tiež jeden zo systémov, ktorý dokazoval potrebu štandardizovania systému výmeny správ v paralel. systémoch. Množstvo študentov paralelného programovania bolo učených používať systém Pthreads a MPI ako komplementárne prostredia.