Rularea unei aplicații MPI pe un cluster de calcul este posibilă numai prin sistemul de procesare în șarje. Pentru a simplifica start-up și organizarea unui mpirun special de script este furnizat în locul programului paralel. De exemplu, mpirun ./first.exe 20 pornește NP procesorul first.exe program paralel 20, adică, la 5 noduri. (Fiecare nod are 2 procesoare dual-core). Este demn de remarcat faptul că, pentru a rula un executabil în directorul curent ($ PWD) trebuie să specificați în mod explicit calea „./“ O serie de implementari de MPI-1 oferă o comandă de pornire pentru programele MPI, care are forma mpirun <аргументы mpirun><программа><аргументы программы>
Separarea comenzii de pornire a programului din programul în sine oferă flexibilitate, în special pentru implementări de rețea și eterogene. Având un mecanism de pornire standard, se extinde, de asemenea, mobilitatea programelor MPI cu un pas înainte, către liniile de comandă și scripturile care le controlează. De exemplu, scriptul unui set de programe de validare care execută sute de programe poate fi un script portabil dacă este scris utilizând un astfel de mecanism de pornire standard. Pentru a nu confunda `„“comanda` standard cu practica actuală, care nu este standard si nu portabil între implementări, în loc de mpirun MPI mpiexec identificat.
In timp ce mecanismul de lansare standardizat imbunatateste MPI aplicabilitate, gamă atât de largă de medii (de exemplu, nu poate fi chiar CLI), care MPI nu poate accepta mandatul unui astfel de mecanism. În schimb, MPI definește comandă pentru a porni mpiexec și recomandă, dar nu are nevoie de consiliul pentru dezvoltatori. Cu toate acestea, în cazul în care o punere în aplicare oferă o mpiexec comanda numita, aceasta ar trebui să aibă o formă descrisă mai jos: mpiexec -n
va exista cel puțin o modalitate de a alerga <программу> cu MPI_COMM_WORLD inițial, al cărui grup conține
Exemplu 4.1 Executarea a 16 instances of myprog pe mașina curentă sau implicită:
mpiexec -n 16 myprog
3. Scrieți un program pentru calculul paralel al unui integral integrat al funcției 2 * (x + 2 * x * x / 1200.0) în intervalul [0,1].
Metoda dreptunghiurilor stângi
dublu f (dublu x)
int principal (int argc, char ** argv)
int n = 1000, i, d; // 1000 - uzly
flotați a = 0, b = 1, h = (b-a) / n, s = 0, r = 0; // a i b -nachalo i sfârșitul otrezka
dacă (rang! = mărimea-1) // schitaut vse processy, krome poslednego
1. Împărțit distribuită memoria.
Distribuită memorie partajată (DSM - Distribuită de memorie partajată)
Sistemul PVM (Virtual Machine Parallel) a fost creat pentru a combina mai multe stații de lucru în rețea într-un singur calculator paralel virtual. Sistemul este un add-on pentru sistemul de operare UNIX și este utilizat pe diferite platforme hardware, inclusiv sisteme cu paralelism în masă. Cele mai frecvente sisteme de programare paralelă bazate pe MPI (Interface Parsing de mesaje). Ideea MPI este inițial simplă și evidentă. Aceasta implică prezentarea unui program paralel sub forma unui set de procese de execuție simultan care interacționează între ele în timpul executării transmisiei de date prin proceduri de comunicare. Ele alcătuiesc biblioteca MPI. Cu toate acestea, implementarea adecvată a MPI pentru furnizarea comunicațiilor interprocesoare sa dovedit a fi destul de complexă. Această complexitate rezultă din necesitatea de a realiza programe de înaltă performanță, necesitatea de a utiliza mai multe multicalculator resurse, și ca rezultat o mare varietate în punerea în aplicare a procedurilor de comunicare, în funcție de modul de procesare.
MPI si PVM au următoarele caracteristici comune: 1 și MPI si PVM sunt concepute pentru a rezolva aceeași problemă de a furniza comunicare interprocese, si 2. MPI si PVM sunt concentrate pe aceeași paradigmă de programare exactă MPMD; 3. și MPI și PVM sunt o bibliotecă de programe; 4. și MPI și PVM asigură mobilitatea programelor create.
MPI și PVM au următoarele diferențe principale: 1. Interfața programatorului PVM este mai simplă decât aceeași interfață MPI; 2. PVM are mijloace de generare a ramurii dinamice (în standardul MPI-2 această posibilitate este de asemenea disponibilă); 3. În PVM, interacțiunea aplicațiilor lansate de același utilizator este posibilă (în standardul MPI-2 această posibilitate este de asemenea disponibilă).