Spațiu de adrese global partajat

Spațiul de adresă global partiționat ( eng.  spațiu de adresă global partiționat , prescurtare PGAS ) este unul dintre modelele promițătoare de programare paralelă ( calcul paralel ), în care toată memoria unui complex de calcul paralel (memorie globală) este adresabilă și este împărțită în secțiuni logice, fiecare dintre ele locală pentru un proces sau fir [1] .

O inovație în PGAS este că secțiunile unui spațiu de adresă partajat pot fi legate la un proces sau un fir specific, exploatând astfel principiul referințelor compacte (locale). PGAS este conceput pentru a combina beneficiile stilului de programare SPMD pentru sistemele de memorie distribuită (cum ar fi cea utilizată în interfața MPI ) cu semantica de acces la memorie a sistemelor de memorie partajată. Abordarea PGAS este mai realistă decât modelul tradițional de memorie plată partajată, deoarece PGAS poate folosi informații despre costul accesării diferitelor secțiuni de memorie (secțiunile locale ale PGAS corespund memoriei locale a nodului pe care rulează procesul, costul de accesare este minim).

Modelul PGAS stă la baza limbajelor de programare paralele Unified Parallel C , Co-array Fortran , Titanium , Fortress , Chapel și X10 , Global Arrays . Cele două biblioteci utilizate în implementarea PGAS sunt GASNet și SHMEM .

O variantă a modelului PGAS numită spațiu de adrese global partiționat asincron ( APGAS ) adaugă capacitatea de a crea sarcini asincrone, atât local, cât și de la distanță. [2] Două limbi care implementează APGAS: Chapel și X10.

Surse suplimentare

Note

  1. Christian Coarfa; Iuri Doțenko; John Mellor-Crummey, „An Evaluation of Global Address Space Languages: Co-Array Fortran and Unified Parallel C” Arhivat 24 noiembrie 2013 la Wayback Machine
  2. Tim Stitt, „An Introduction to the Partitioned Global Address Space (PGAS) Programming Model” Arhivat 15 noiembrie 2013 la Wayback Machine