เผยแพร่มาตรฐานการเขียนโปรแกรมแบบขนาน OpenMP 6.0

หลังจากสามปีของการพัฒนา ชุดข้อกำหนดของ OpenMP 6.0 (Open Multi-Processing) ได้รับการเผยแพร่ โดยกำหนด API และวิธีการใช้วิธีการเขียนโปรแกรมแบบขนานสำหรับภาษา C, C++ และ Fortran ​​บนมัลติคอร์และไฮบริด (CPU+GPU /DSP) ระบบที่มีหน่วยความจำที่ใช้ร่วมกันและบล็อก vectorization (SIMD) การสนับสนุนเบื้องต้นสำหรับคุณสมบัติ OpenMP 6.0 ที่เลือกนั้นคาดว่าจะรวมอยู่ในรุ่น LLVM/Clang 20 และ GCC 15

การเปลี่ยนแปลงที่สำคัญใน OpenMP 6.0:

  • กระบวนการของงานการเขียนโปรแกรมได้รับการปรับปรุงให้ง่ายขึ้น โดยกำหนดส่วนที่เป็นอิสระของโปรแกรมที่สามารถดำเนินการควบคู่ไปกับส่วนอื่นๆ ได้
    • เพิ่มความสามารถในการดำเนินงานในเธรดตัวแทนอิสระที่ไม่เชื่อมโยงกับกลุ่มของเธรด (ทีม) ที่ดำเนินการขอบเขตขนาน (ขอบเขตขนาน บล็อกของโค้ดที่ดำเนินการในหลายเธรด)
    • มีการสนับสนุนสำหรับการบันทึกกราฟงาน ซึ่งกำหนดการขึ้นต่อกันระหว่างงานและลำดับของงานที่ถูกดำเนินการ เพื่อปรับปรุงประสิทธิภาพของการเล่นซ้ำในภายหลัง
    • มีการนำกลไกสำหรับงานที่โปร่งใสมาใช้เพื่อลดความซับซ้อนในการจัดการการพึ่งพาและควบคุมการดำเนินงานของงานย่อยโดยอัตโนมัติ
  • การสนับสนุนเพิ่มเติมสำหรับอุปกรณ์คอมพิวเตอร์ที่สามารถใช้เพื่อทำงานแบบขนาน (CPU, GPU, DSP ฯลฯ)
    • เพิ่มไวยากรณ์อาร์เรย์ใหม่เพื่ออนุญาตให้ใช้คำสั่ง "workdistribute" เพื่อแยกการประมวลผลอาร์เรย์ระหว่างหน่วยงานต่างๆ
    • การควบคุมการจัดสรรหน่วยความจำได้รับการปรับปรุงเพื่อให้ง่ายต่อการจัดการตัวแปรที่จัดสรรหน่วยความจำแบบไดนามิก
    • การสนับสนุนแอตทริบิวต์ที่กำหนดวิธีการกระจายข้อมูลระหว่างอุปกรณ์ตามค่าเริ่มต้นได้รับการขยายแล้ว
    • การเขียนโค้ดแบบง่ายสำหรับการถ่ายโอนข้อมูลแบบอะซิงโครนัสไปยังอุปกรณ์ประมวลผล (GPU) เพิ่มเติม
    • ปรับปรุงการจัดการหน่วยความจำและการเชื่อมโยงกับอุปกรณ์คอมพิวเตอร์
    • เพิ่มคำสั่ง "groupprivate" เพื่อกำหนดหน่วยความจำให้กับกลุ่มเธรดที่ทำงานบนอุปกรณ์คอมพิวเตอร์เฉพาะ
  • การตั้งโปรแกรมการแปลงลูปบางประเภทได้รับการทำให้ง่ายขึ้น เช่น การรวมหลายลูป การเปลี่ยนลำดับของลูปที่ซ้อนกัน และการย้อนกลับลูป
  • มีการเพิ่มการดำเนินการเหนี่ยวนำใหม่เพื่อจัดระเบียบการทำงานแบบขนานในลูปของการคำนวณทางคณิตศาสตร์อย่างง่ายและการดำเนินการของผู้ใช้ที่ขึ้นอยู่กับค่าก่อนหน้า
  • เพิ่มการรองรับอย่างสมบูรณ์สำหรับการขนานของโปรแกรมที่เขียนโดยใช้มาตรฐาน C23 (รวมถึงไวยากรณ์ของแอตทริบิวต์), Fortran 2023 และ C++23 เพิ่มคุณลักษณะใหม่สำหรับ C/C++
  • ความสามารถในการจัดเก็บข้อมูลและการจัดการหน่วยความจำที่เพิ่มขึ้น มีการเพิ่มคุณลักษณะใหม่เพื่อควบคุมวิธีการจัดสรรและใช้หน่วยความจำ เพิ่ม API สำหรับการกำหนดและค้นหาพื้นที่หน่วยความจำ
  • คุณลักษณะที่เลิกใช้งานในข้อกำหนด OpenMP 5.0, 5.1 และ 5.2 ได้ถูกลบออกแล้ว

ที่มา: opennet.ru

เพิ่มความคิดเห็น