Бібліотека підвищення графіків та LEMON
Як згадує Даніель у своїй вичерпній відповіді , найбільш повнофункціональною загальною бібліотекою C ++ є бібліотека Boost Graph . Існує нове розширення з розподіленою пам’яттю, яке може виконувати деякі основні алгоритми, такі як пошук по ширині та глибині перших, мінімальне охоплення дерев та пошук підключених компонентів, але я не дуже знайомий з новим проектом. Сама бібліотека Boost Graph має високу репутацію та використовується у багатьох проектах по всьому світу.
Якщо ви виконуєте основні роботи з графіком HPC, ви можете почати з бібліотеки Boost Graph, але пам’ятайте, що багато компіляторів HPC C ++ мають труднощі з Boost (незважаючи на досить чітке дотримання стандартів C ++), і вам може знадобитися використовувати старіша версія Boost або компілятор від постачальника, наприклад GCC, щоб він працював над системами HPC.
Швидкий перегляд сховищ LEMON свідчить про те, що команда суперкомп'ютерів IBM BlueGene залучає участь, але я не бачу ніяких залежностей і конфігурацій для MPI, тож це, мабуть, лише бібліотека послідовних графіків.
Балансування навантаження та динамічний графік (пере) розподіл
Якщо ви зацікавлені в балансуванні навантаження та динамічному розподілі графіка, у вас є ще кілька варіантів. Мабуть, найвідоміша бібліотека - ParMETIS , яка була оновлена до версії 4 минулого року. ParMETIS має зважування на основі вершин, що важливо для моделювання багатофізичної фізики.
Європейським конкурентом ParMETIS є PT-Scotch , який має кращі показники для певних типів проблем, але, як і ParMETIS, не оновлюється часто.
Можливо, вас також зацікавить Золтан , який є частиною метапакету Sandia National Laboratories Trilinos для наукових обчислень на C ++. Zoltan має власні ієрархічні учасники та інтерфейси як для ParMETIS, так і для PT-Scotch.
Графік500
Якщо ви працюєте над кровотоком під час паралельного пошуку, оптимізації (єдиний найкоротший шлях) та орієнтованого на край (максимальний незалежний набір), вас також зацікавить вільно доступний орієнтир Graph500 .