Avaldatud OpenMP 6.0 paralleelprogrammeerimise standard

PĂ€rast kolme aasta arengut on avaldatud OpenMP 6.0 spetsifikatsioonide kogum (Open Multi-Processing), mis mÀÀratleb API ja meetodite rakendamise viisid C, C++ ja Fortran programmistiku paralleelse programmeerimise jaoks mitme tuuma ja hĂŒbriidsete (CPU+GPU/DSP) sĂŒsteemide jaoks, kus on jagatud mĂ€lu ja vektorkluster (SIMD). Eeldatakse, et OpenMP 6.0 osade varane toetus sisaldub LLVM/Clang 20 ja GCC 15 vĂ€ljaannetes.

Peamised muudatused OpenMP 6.0:

  • Tööde (task) programmeerimise protsess, mis mÀÀratleb sĂ”ltumatud programmiosad, mida saab teostada paralleelselt teiste osadega, on lihtsustatud.
    • On lisatud vĂ”imalus tĂ€ita töid tasuta agentide niĆĄi (free-agent threads), mis ei ole seotud niitide rĂŒhmade (teams) jaotatud paralleelsete piirkondade (parallel region, koodiplokk, mida teostatakse mitme niidi abil) vahel.
    • On tagatud toetus tööde graafi (taskgraph) salvestamiseks, mis mÀÀratleb tööde vahelist sĂ”ltuvust ja tööde tĂ€itmise jĂ€rjekorra, et suurendada edasise korduvkasutamise efektiivsust.
    • On rakendatud lĂ€bipaistva tööde mehhanismi ('transparent tasks'), et lihtsustada sĂ”ltuvuste haldamist ja automaatset alatteemade tĂ€itmist.
  • On laiendatud toetust arvutuslikele seadmetele, mida saab kasutada paralleelsete tööde teostamiseks (CPU, GPU, DSP jne).
    • On lisatud uus massiivide sĂŒntaks, mis vĂ”imaldab kasutada 'workdistribute' direktiivi massiivide töötlemise jagamiseks erinevate tĂ¶Ă¶ĂŒksuste vahel.
    • On laiendatud mĂ€lu eraldamise juhtimise vĂ”imalusi, mis lihtsustavad dĂŒnaamiliselt eraldatud muutuja haldamist.
    • On laiendatud attribuutide toetust, mis mÀÀratleb andmete jaotuse seadmete vahel vaikimisi.
    • On lihtsustatud koodi kirjutamine asĂŒnkroonsete andmeedastuste jaoks tĂ€iendavatele arvutuslikele seadmetele (GPU).
    • On parendatud mĂ€luhalduse ja selle seotuse juhtimist arvutuslikele seadmetele.
    • On lisatud direktiiv 'groupprivate' mĂ€lu andmiseks niitide grupile, mis töötavad kindlas arvutuslikus seadmes.
  • On lihtsustatud mĂ”nede tsĂŒklite transformatsioonide programmeerimist, nagu mitme tsĂŒkli ĂŒhendamine, sisemise tsĂŒkli jĂ€rjekorra muutmine ja tsĂŒklite pööramine.
  • Uus induktsiooniprotseduur (induction) on lisatud, et korraldada lihtsate aritmeetiliste arvutuste ja eelnevate vÀÀrtuste pĂ”hinevate kasutajaoperatsioonide paralleelseid tehinguid.
  • TĂ€ielik tugi paralleelseks programmeerimiseks, mis on loodud C23 (sealhulgas atribuudi sĂŒntaks), Fortran 2023 ja C++23 standardite kohaselt. Uued atribuudid C/C++ jaoks on lisatud.
  • MĂ€lu ja salvestusruumi haldamise vĂ”imalusi on laiendatud. Uued atribuudid mĂ€lu jaotuse ning kasutamise juhtimiseks on lisatud. API, et mÀÀrata ja kĂŒsida mĂ€lu alasid (memory space), on loodud.
  • Eemaldatud vĂ”imalused, mis on mÀÀratletud vananenutena OpenMP 5.0, 5.1 ja 5.2 spetsifikatsioonides.

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster