Sincronizarea barierei

Sincronizarea cu bariere este o metodă de sincronizare în calculul distribuit, în care execuția unui algoritm paralel sau a unei părți a acestuia poate fi împărțită în mai multe etape separate prin bariere. În special, cu ajutorul unei bariere, este posibil să se organizeze un punct de colectare a rezultatelor parțiale ale calculelor, în care sunt rezumate rezultatele etapei de calcul. Utilizarea barierelor ca primitive de sincronizare este utilă în special pentru organizarea ciclică a etapelor [1] [2] [3] .

O barieră pentru un grup de fire (sau procese) în codul sursă înseamnă că fiecare fir (proces) trebuie să se oprească în acel moment și să aștepte ca toate firele (procesele) grupului să ajungă la barieră. Când toate firele (procesele) au ajuns la barieră, execuția lor continuă [4] .

Unele medii de calcul paralele, cum ar fi OpenMP și Cilk, au bariere implicite în semantica buclelor lor paralele și a blocurilor de cod [3] .

Note

  1. Vladimir Galatenko, Barriers Arhivat 8 decembrie 2015 la Wayback Machine , Lectura 2: Instrumente de sincronizare a fluxului de control, Intuit
  2. Barrier (.NET Framework) Arhivat 8 decembrie 2015 la Wayback Machine , MSDN
  3. 1 2 R. K. Karmani et al., Barrier Synchronization Pattern Arhivat 8 decembrie 2015 la Wayback Machine , 2009
  4. Utilizarea Sincronizării Barrier Arhivat 8 decembrie 2015 la Wayback Machine , Oracle