Paralel programming baku OpenMP 6.0 diterbitkeun

Saatos pamekaran tilu taun, sét spésifikasi OpenMP 6.0 (Open Multi-Processing) parantos diterbitkeun, netepkeun API sareng metode pikeun nerapkeun metode program paralel pikeun basa C, C ++ sareng Fortran dina multi-inti sareng hibrida (CPU + GPU. / DSP) sistem kalawan memori dibagikeun jeung blok vectorization (SIMD). Pangrojong awal pikeun fitur OpenMP 6.0 anu dipilih diperkirakeun kalebet dina LLVM / Clang 20 sareng GCC 15 rilis.

Parobihan utama dina OpenMP 6.0:

  • Prosés tugas programming geus disederhanakeun, nangtukeun bagian bebas tina program nu bisa dieksekusi sajajar jeung bagian séjén.
    • Ditambahkeun kamampuhan pikeun ngalakukeun tugas dina bebas-agén threads nu teu kabeungkeut grup threads (tim) nu ngaéksekusi wewengkon paralel (wilayah paralel, blok kode dieksekusi dina sababaraha threads).
    • Rojongan disadiakeun pikeun nyimpen taskgraph, nu ngahartikeun kagumantungan antara tugas jeung urutan nu tugas dieksekusi, pikeun ngaronjatkeun efisiensi replay saterusna.
    • Mékanisme pikeun tugas transparan parantos dilaksanakeun pikeun nyederhanakeun manajemén kagumantungan sareng otomatis ngadalikeun palaksanaan tugas anak.
  • Ngalegaan rojongan pikeun alat komputasi nu bisa dipaké pikeun ngalakukeun tugas paralel (CPU, GPU, DSP, jsb).
    • Nambahkeun sintaksis Asép Sunandar Sunarya anyar pikeun ngidinan "workdistribute" diréktif dipaké pikeun pamisah processing Asép Sunandar Sunarya antara unit béda gawé.
    • Kadali alokasi memori parantos ditingkatkeun pikeun ngagampangkeun ngatur variabel anu mémori dialokasikeun sacara dinamis.
    • Rojongan pikeun atribut anu nangtukeun kumaha data disebarkeun antara alat sacara standar geus dimekarkeun.
    • Kode tulisan saderhana pikeun transfer data asinkron ka alat komputasi tambahan (GPU).
    • Ningkatkeun manajemén mémori sareng ngabeungkeutna kana alat komputasi.
    • Ditambahkeun "groupprivate" diréktif pikeun napelkeun memori ka grup threads ngajalankeun dina alat komputasi husus.
  • Program sababaraha jinis transformasi loop parantos disederhanakeun, sapertos ngahijikeun sababaraha puteran, ngarobih urutan puteran bersarang, sareng puteran ngabalikeun.
  • Operasi induksi anyar geus ditambahkeun pikeun ngatur parallelization dina puteran itungan arithmetic basajan tur operasi pamaké nu gumantung kana nilai saméméhna.
  • Ditambahkeun dukungan pinuh pikeun paralélisasi program anu ditulis nganggo standar C23 (kaasup sintaksis atribut), Fortran 2023 sareng C ++ 23. Ditambahkeun atribut anyar pikeun C / C ++.
  • Panyimpen ditingkatkeun sareng kamampuan manajemén mémori. Atribut anyar geus ditambahkeun kana kontrol kumaha memori kudu dialokasikeun sarta dipaké. Ditambahkeun API pikeun nangtukeun jeung querying spasi memori.
  • Fitur anu teu dianggo dina spésifikasi OpenMP 5.0, 5.1, sareng 5.2 parantos dipupus.

sumber: opennet.ru

Tambahkeun komentar