Boost Graph Library und LEMON
Wie Daniel in seiner umfassenden Antwort erwähnt , ist die Boost Graph Library die umfassendste allgemeine C ++ - Bibliothek . Es gibt eine neue Erweiterung für verteilten Speicher, die einige grundlegende Algorithmen ausführen kann, z. B. Breitensuche und Tiefensuche, minimale Spannbäume und Suche nach verbundenen Komponenten, aber ich bin mit dem neuen Projekt nicht sehr vertraut. Die Boost Graph Library selbst ist bekannt und wird in vielen Projekten auf der ganzen Welt verwendet.
Wenn Sie grundlegende HPC-Diagrammarbeiten ausführen, möchten Sie möglicherweise mit der Boost-Diagrammbibliothek beginnen. Beachten Sie jedoch, dass viele HPC C ++ - Compiler Probleme mit Boost haben (trotz der recht strengen Einhaltung der C ++ - Standards) und möglicherweise eine verwenden müssen ältere Version von Boost oder ein Compiler eines anderen Anbieters wie GCC, damit es auf HPC-Systemen funktioniert.
Ein kurzer Blick in die LEMON-Repositorys zeigt, dass das IBM BlueGene-Supercomputing-Team beteiligt ist, ich sehe jedoch keine Abhängigkeiten oder Konfigurationen für MPI, sodass es sich derzeit wahrscheinlich nur um eine serielle Diagrammbibliothek handelt.
Lastausgleich und dynamische (Neu-) Partitionierung von Graphen
Wenn Sie an Lastausgleich und dynamischer Diagrammpartitionierung interessiert sind, haben Sie mehrere weitere Optionen. Die vielleicht bekannteste Bibliothek ist ParMETIS , die letztes Jahr auf Version 4 aktualisiert wurde. ParMETIS bietet eine vertexbasierte Gewichtung, die für Multi-Physik-Simulationen wichtig ist.
Der europäische Konkurrent von ParMETIS ist PT-Scotch , das bei bestimmten Arten von Problemen eine bessere Leistung erzielt hat, jedoch ähnlich wie ParMETIS nicht häufig aktualisiert wird.
Sie könnten auch an Zoltan interessiert sein , das Teil des Trilinos-Metapakets der Sandia National Laboratories für wissenschaftliches Rechnen in C ++ ist. Zoltan verfügt über eigene hierarchische Partitionierer und Schnittstellen zu ParMETIS und PT-Scotch.
Graph500
Wenn Sie an der Spitze der gleichzeitigen Suche, Optimierung (kürzester Pfad aus einer Quelle) und kantenorientiert (maximaler unabhängiger Satz) arbeiten, interessieren Sie sich auch für den frei verfügbaren Graph500-Benchmark .