เพิ่มห้องสมุดกราฟและ LEMON
ขณะที่แดเนียลกล่าวถึงเขาในคำตอบที่ครอบคลุมที่เต็มรูปแบบมากที่สุดทั่วไปไลบรารี c ++ เป็นBoost ห้องสมุดกราฟ มีส่วนขยายหน่วยความจำแบบกระจายใหม่ที่มีความสามารถในการทำอัลกอริธึมพื้นฐานบางอย่างเช่นการค้นหาแบบกว้างแรกและลึกแรก, การขยายต้นไม้น้อยที่สุดและค้นหาส่วนประกอบที่เชื่อมต่อ แต่ฉันไม่คุ้นเคยกับโครงการใหม่ ห้องสมุด Boost Graph นั้นมีชื่อเสียงและใช้ในหลายโครงการทั่วโลก
หากคุณกำลังทำงานกราฟ HPC พื้นฐานคุณอาจต้องการเริ่มต้นด้วย Boost Graph Library แต่โปรดทราบว่าคอมไพเลอร์ HPC C ++ หลายคนมีปัญหากับ Boost (แม้จะมีการยึดมั่นอย่างเข้มงวดกับมาตรฐาน C ++) และคุณอาจต้องใช้ Boost รุ่นเก่าหรือคอมไพเลอร์ที่ไม่ใช่ผู้ขายเช่น GCC เพื่อให้มันทำงานบนระบบ HPC
การเรียกดูอย่างรวดเร็วของที่เก็บของ LEMON แสดงให้เห็นว่ามีการมีส่วนร่วมจากทีมซูเปอร์คอมพิวเตอร์ IBM BlueGene แต่ฉันไม่เห็นการพึ่งพาหรือการกำหนดค่าใด ๆ สำหรับ MPI ดังนั้นนี่น่าจะเป็นไลบรารีกราฟอนุกรมเท่านั้นในขณะนี้
โหลดบาลานซ์และกราฟไดนามิก (อีกครั้ง) - การแบ่งพาร์ติชัน
หากคุณมีความสนใจในการทำโหลดบาลานซ์และการแบ่งกราฟแบบไดนามิกคุณมีตัวเลือกมากมาย บางทีห้องสมุดที่มีชื่อเสียงที่สุดคือParMETISซึ่งได้รับการอัพเดตเป็นเวอร์ชั่น 4 เมื่อปีที่แล้ว ParMETIS มีการถ่วงน้ำหนักตามจุดยอดซึ่งเป็นสิ่งสำคัญสำหรับการจำลองทางฟิสิกส์
คู่แข่งในยุโรปของ ParMETIS คือPT-Scotchซึ่งมีประสิทธิภาพที่ดีกว่าสำหรับปัญหาบางประเภท แต่คล้ายกับ ParMETIS ซึ่งไม่ได้รับการปรับปรุงบ่อยครั้ง
คุณอาจสนใจZoltanซึ่งเป็นส่วนหนึ่งของแพ็คเกจ meta-Sandia National Laboratories Trilinos สำหรับการคำนวณทางวิทยาศาสตร์ใน C ++ Zoltan มีพาร์ทิชันและอินเทอร์เฟซลำดับชั้นของตัวเองในทั้ง ParMETIS และ PT-Scotch
Graph500
หากคุณกำลังทำงานอยู่บนขอบเลือดของการค้นหาพร้อมกันเพิ่มประสิทธิภาพ (แหล่งเดียวเส้นทางที่สั้นที่สุด) และขอบที่มุ่งเน้น (ชุดอิสระสูงสุด) คุณจะมีความสนใจในใช้ได้อย่างอิสระมาตรฐาน Graph500