Nei trije jier fan ûntwikkeling is in set fan OpenMP 6.0 (Open Multi-Processing) spesifikaasjes publisearre, dy't API's en metoaden definiearje foar it tapassen fan parallelle programmearmetoaden foar C, C ++ en Fortran-talen op multi-core en hybride (CPU + GPU) / DSP) systemen mei dielde ûnthâld en blokken vectorization (SIMD). Inisjele stipe foar selekteare OpenMP 6.0-funksjes wurdt ferwachte dat se opnommen wurde yn 'e LLVM / Clang 20- en GCC 15-releases.
Grutte feroaringen yn OpenMP 6.0:
- It proses fan programmearjen fan taken is ferienfâldige, it definiearjen fan ûnôfhinklike dielen fan it programma dy't parallel mei oare dielen kinne wurde útfierd.
- Taheakke de mooglikheid om taken út te fieren yn free-agent-threads dy't net bûn binne oan groepen fan threads (teams) dy't parallelle regio's útfiere (parallelle regio, in blok koade útfierd yn ferskate threads).
- Stipe wurdt levere foar it bewarjen fan in taakgrafyk, dy't ôfhinklikens definiearret tusken taken en de folchoarder wêryn taken wurde útfierd, om de effisjinsje fan folgjende replay te ferbetterjen.
- In meganisme foar transparante taken is ymplementearre om ôfhinklikensbehear te ferienfâldigjen en automatysk de útfiering fan bernetaken te kontrolearjen.
- Utwreide stipe foar komputerapparaten dy't kinne wurde brûkt om parallelle taken út te fieren (CPU, GPU, DSP, ensfh.).
- Nije arraysyntaksis tafoege om de "workdistribute"-rjochtline te brûken om arrayferwurking te splitsen tusken ferskate ienheden fan wurk.
- Unthâldallokaasjekontrôles binne ferbettere om it makliker te meitsjen om fariabelen te behearjen wêrfoar ûnthâld dynamysk wurdt tawiisd.
- Stipe foar attributen dy't bepale hoe't gegevens standert wurde ferdield tusken apparaten is útwreide.
- Ienfâldige skriuwkoade foar asynchrone gegevensoerdracht nei ekstra kompjûterapparaten (GPU's).
- Ferbettere ûnthâldbehear en syn bining oan komputerapparaten.
- Tafoege "groupprivate" rjochtline foar it tawizen fan ûnthâld oan in groep triedden dy't rinne op in spesifyk kompjûterapparaat.
- De programmearring fan bepaalde soarten looptransformaasjes is ferienfâldige, lykas it gearfoegjen fan meardere loops, it feroarjen fan de folchoarder fan nestele loops, en omkearing fan loops.
- In nije ynduksjeoperaasje is tafoege om parallelisaasje te organisearjen yn loops fan ienfâldige arithmetyske berekkeningen en brûkersoperaasjes dy't ôfhinklik binne fan eardere wearden.
- Folsleine stipe tafoege foar parallelisaasje fan programma's skreaun mei de C23-noarmen (ynklusyf attribútsyntaksis), Fortran 2023 en C++23. Nije attributen tafoege foar C / C ++.
- Ferbettere mooglikheden foar opslach en ûnthâldbehear. Nije attributen binne tafoege om te kontrolearjen hoe't ûnthâld moat wurde tawiisd en brûkt. API tafoege foar it definiearjen en freegjen fan ûnthâldromten.
- Funksjes ôfskreaun yn 'e OpenMP 5.0, 5.1, en 5.2 spesifikaasjes binne fuortsmiten.
Boarne: opennet.ru
