U publikua standardi për programimin paralel OpenMP 6.0

Pas tre vjetësh zhvillimi, u publikua grupi i specifikimeve OpenMP 6.0 (Open Multi-Processing), i cili përcakton API-në dhe mënyrat e aplikimit të metodave të programimit paralel për gjuhët C, C++ dhe Fortran në sisteme me shumë bërthama dhe hibrid (CPU+GPU/DSP) me memorie të përbashkët dhe blloqe të vektorizimit (SIMD). Pritet që mbështetja fillestare për funksionet e veçanta të OpenMP 6.0 të përfshihet në lëshimet e LLVM/Clang 20 dhe GCC 15.

Ndryshimet kryesore në OpenMP 6.0:

  • Procesi i programimit tĂ« detyrave (task) Ă«shtĂ« thjeshtuar, duke pĂ«rcaktuar pjesĂ«t e pavarura tĂ« programit qĂ« mund tĂ« ekzekutohen paralelisht me pjesĂ« tĂ« tjera.
    • ËshtĂ« shtuar mundĂ«sia e ekzekutimit tĂ« detyrave nĂ« rrjetet e lira, tĂ« pa lidhura me grupet e proceseve (teams) qĂ« ekzekutojnĂ« rajonet paralele (parallel region, blloku i kodit qĂ« ekzekutohet nĂ« disa procese).
    • ËshtĂ« siguruar mbĂ«shtetje pĂ«r ruajtjen e grafit tĂ« detyrave (taskgraph), i cili pĂ«rcakton varĂ«sitĂ« midis detyrave dhe rendin e ekzekutimit tĂ« detyrave, pĂ«r tĂ« rritur efikasitetin e riprodhimit tĂ« mĂ«vonshĂ«m.
    • ËshtĂ« realizuar mekanizmi i detyrave transparente (‘transparent tasks’) pĂ«r tĂ« thjeshtuar menaxhimin e varĂ«sive dhe menaxhimin automatizues tĂ« ekzekutimit tĂ« detyrave nĂ«n-ndihmĂ«s.
  • ËshtĂ« zgjeruar mbĂ«shtetja pĂ«r pajisjet kompjuterike qĂ« mund tĂ« pĂ«rdoren pĂ«r ekzekutimin e detyrave paralel (CPU, GPU, DSP etj.).
    • ËshtĂ« shtuar njĂ« sintaksĂ« e re pĂ«r vargjet, duke lejuar pĂ«rdorimin e drejtorisĂ« 'workdistribute' pĂ«r ndarjen e pĂ«rpunimit tĂ« vargjeve midis njĂ«si tĂ« ndryshme pune.
    • JanĂ« zgjeruar mundĂ«sitĂ« pĂ«r menaxhimin e alokimit tĂ« memories, duke thjeshtuar menaxhimin e variablave pĂ«r tĂ« cilat memoria alokohet dinamikisht.
    • ËshtĂ« zgjeruar mbĂ«shtetja pĂ«r atributet qĂ« pĂ«rcaktojnĂ« shpĂ«rndarjen e tĂ« dhĂ«nave midis pajisjeve si parazgjedhje.
    • Shkrimi i kodit pĂ«r transferimin asinkron tĂ« tĂ« dhĂ«nave nĂ« pajisje tĂ« tjera kompjuterike (GPU) Ă«shtĂ« thjeshtuar.
    • Menaxhimi i memories dhe lidhja e saj me pajisjet kompjuterike Ă«shtĂ« pĂ«rmirĂ«suar.
    • ËshtĂ« shtuar drejtorija 'groupprivate' pĂ«r tĂ« lidhur memory me njĂ« grup procesesh qĂ« ekzekutohen nĂ« njĂ« pajisje tĂ« caktuar kompjuterike.
  • Programimi i disa llojeve tĂ« transformimeve tĂ« cikleve, si pĂ«r shembull bashkimi i disa cikleve, ndryshimi i rendit tĂ« cikleve tĂ« ngulitura dhe pĂ«rmbysja e cikleve, Ă«shtĂ« thjeshtuar.
  • Shtesa e njĂ« operacioni tĂ« ri induksioni (induction) pĂ«r organizimin e paralelizimit nĂ« ciklet e llogaritjeve tĂ« thjeshta aritmetike dhe operacioneve pĂ«rdoruesit, tĂ« varura nga vlerat e mĂ«parshme.
  • Shtesa e mbĂ«shtetjes sĂ« plotĂ« pĂ«r paralelizimin e programeve tĂ« shkruara duke pĂ«rdorur standardet C23 (duke pĂ«rfshirĂ« sintaksĂ«n e atributeve), Fortran 2023 dhe C++23. Shtohen atribute tĂ« reja pĂ«r C/C++.
  • Zgjerimi i mundĂ«sive pĂ«r menaxhimin e ruajtjes dhe memories. Shtohen atribute tĂ« reja pĂ«r kontrollin mbi mĂ«nyrĂ«n se si duhet alokuar dhe pĂ«rdorur memoria. Shtohet njĂ« API pĂ«r pĂ«rcaktimin dhe kĂ«rkimin e hapĂ«sirave tĂ« memories (memory space).
  • Eleminimi i mundĂ«sive tĂ« shpallura si tĂ« vjetra nĂ« specifikimet OpenMP 5.0, 5.1 dhe 5.2.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster