OpenMP

Straipsnis iš Vikipedijos, laisvosios enciklopedijos.
Peršokti į: navigaciją, paiešką

OpenMP - programavimo standartas, skirtas realizuoti lygiagretiesiems algoritmams bendros atminties kompiuteriuose. Todėl, kad OpenMP skirtas bendros atminties kompiuteriams, programuotojui nereikia rūpintis duomenų apsikeitimų tarp skirtingų procesorių. Algoritmas dalinamas į nuosekliąsias ir lygiagrečiąsias dalis, kurios vykdomos procesų grupėse. Procesai naudoja bendrus ir lokalius kintamuosius. Bendras kintamasis yra bendras visiems grupės procesams, o lokalus kintamasis sukuriamas kiekvienam procese. OpenMP lokalus kintamieji yra analogiški HPF ir MPI procesų kintamiesiems.

OpenMP programavimo pagrindiniai etapai:

  1. Algoritmą pradeda vykdyti vienas procesas – šeimininkas (Master direktyva). Tai algoritmo nuoseklioji dalis.
  2. Vėliau naudojama lygiagrečioji sritis, tai atliekama, kai pasibaigia nuoseklioji algoritmo dalis ir sukuriama vienu metu dirbančių procesų grupė (Išsišakojimo (Fork) direktyva).
  3. Šiame etape visi procesai baigia vykdyti lygiagrečiosios srities užduotis. Jie sustabdomi ir toliau skaičiuoja tik procesas šeimininkas (Apjungimo (Join) direktyva).