หลังจากสามปีของการพัฒนา ชุดข้อกำหนดของ 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
