është publikuar standardi i programimit paralel OpenMP 6.0

Pas pas tre vjet për zhvillim, u publikua një paketë specifikimesh OpenMP 6.0 (Open Multi-Processing), e cila përcakton API 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 hibride (CPU+GPU/DSP) me memorie të përbashkët dhe blloqe vektorizimi (SIMD). Parashikohet që mbështetje fillestare për disa funksionalitete të OpenMP 6.0 do të përfshihet në versionet 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Ă« pavarura tĂ« programit qĂ« mund tĂ« ekzekutohen paralelisht me pjesĂ« tĂ« tjera.
    • Shtuar mundĂ«sinĂ« e ekzekutimit tĂ« detyrave nĂ« tela free-agent, qĂ« nuk janĂ« tĂ« lidhura me grupe telash (teams), qĂ« realizojnĂ« rajone paralele (parallel region, bllok kodi i ekzekutuar nĂ« disa tela).
    • 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Ă« pĂ«rmirĂ«suar efikasitetin e rikthimit tĂ« ardhshĂ«m.
    • Mekanizmi i detyrave transparente («transparent tasks») Ă«shtĂ« realizuar pĂ«r tĂ« thjeshtuar menaxhimin e varĂ«sive dhe menaxhimin automatik tĂ« ekzekutimit tĂ« detyrave nĂ«nore.
  • Zgjeruar mbĂ«shtetje pĂ«r pajisjet kompjuterike qĂ« mund tĂ« pĂ«rdoren pĂ«r ekzekutimin e detyrave paralel (CPU, GPU, DSP, etj.).
    • Sintaksa e re e masave Ă«shtĂ« shtuar, duke lejuar pĂ«rdorimin e direktivĂ«s «workdistribute» pĂ«r tĂ« ndarĂ« pĂ«rpunimin e masave midis njĂ«sive tĂ« ndryshme tĂ« punĂ«s.
    • ZgjerojnĂ« mundĂ«sitĂ« e menaxhimit tĂ« alokimit tĂ« memories, duke thjeshtuar menaxhimin e variablave pĂ«r tĂ« cilat memoria alokohet dinamikisht.
    • Zgjeruar mbĂ«shtetje pĂ«r atributet qĂ« pĂ«rcaktojnĂ« shpĂ«rndarjen e tĂ« dhĂ«nave midis pajisjeve sipas parimit default.
    • ThjeshtĂ«suar shkrimin e kodit pĂ«r transferimin asinkron tĂ« tĂ« dhĂ«nave nĂ« pajisje tĂ« tjera kompjuterike (GPU).
    • PĂ«rmirĂ«suar menaxhimi i memories dhe lidhja e saj me pajisjet kompjuterike.
    • Direktiva «groupprivate» Ă«shtĂ« shtuar pĂ«r tĂ« lidhur memorjen me njĂ« grup rrjedhash tĂ« cilĂ«t ekzekutohen nĂ« njĂ« pajisje tĂ« caktuar llogaritĂ«se.
  • ThjeshtĂ«suar programimin e disa llojeve tĂ« transformimeve tĂ« cikleve, si bashkimi i disa cikleve, ndryshimi i rendit tĂ« cikleve tĂ« pĂ«rfshira dhe rrethimi i cikleve.
  • Shtuar njĂ« operacion tĂ« ri induksioni (induction) pĂ«r organizimin e paralelizimit nĂ« cikle tĂ« llogaritjeve arithmetic dhe operacioneve pĂ«rdoruese qĂ« varen nga vlerat e mĂ«parshme.
  • Shtuar mbĂ«shtetje tĂ« 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. Shtuar atribute tĂ« rinj pĂ«r C/C++.
  • Zgjeruar mundĂ«sitĂ« e menaxhimit tĂ« ruajtjes dhe memories. Shtuar atribute tĂ« rinj pĂ«r kontrollin e mĂ«nyrĂ«s se si duhet tĂ« alokohet dhe pĂ«rdoret memoria. Shtuar API pĂ«r pĂ«rcaktimin dhe kĂ«rkesĂ«n e hapĂ«sirave tĂ« memories (memory space).
  • Hequr mundĂ«sitĂ« qĂ« u shpallĂ«n tĂ« vjetruara nĂ« specifikimet OpenMP 5.0, 5.1 dhe 5.2.

Burimi: opennet.ru

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