Boost Graph Library et LEMON
Comme Daniel le mentionne dans sa réponse complète , la bibliothèque C ++ générale la plus complète est la bibliothèque de graphiques Boost . Il existe une nouvelle extension de mémoire distribuée capable de faire quelques algorithmes de base tels que la recherche en largeur et en profondeur, les arbres couvrant minimum et la recherche de composants connectés, mais je ne connais pas très bien le nouveau projet. La bibliothèque graphique Boost est réputée et utilisée dans de nombreux projets à travers le monde.
Si vous effectuez un travail de base sur les graphiques HPC, vous voudrez peut-être commencer par la bibliothèque de graphiques Boost, mais sachez que de nombreux compilateurs HPC C ++ ont des difficultés avec Boost (malgré son adhésion assez stricte aux normes C ++), et vous devrez peut-être utiliser un ancienne version de Boost ou un compilateur non fournisseur tel que GCC pour le faire fonctionner sur les systèmes HPC.
Un rapide survol des référentiels de LEMON montre qu'il y a une implication de l'équipe de superinformatique IBM BlueGene, mais je ne vois pas de dépendances ou de configuration pour MPI, donc il est probable que ce ne soit qu'une bibliothèque de graphes série pour le moment.
Équilibrage de charge et (re) partitionnement graphique dynamique
Si vous êtes intéressé par l'équilibrage de charge et le partitionnement graphique dynamique, vous avez plusieurs autres options. La bibliothèque la plus connue est peut-être ParMETIS , qui a été mise à jour vers la version 4 l'année dernière. ParMETIS propose une pondération basée sur les sommets, ce qui est important pour les simulations multi-physiques.
Le concurrent européen de ParMETIS est PT-Scotch , qui a eu de meilleures performances pour certains types de problèmes, mais, comme ParMETIS, n'est pas fréquemment mis à jour.
Vous pouvez également être intéressé par Zoltan , qui fait partie du méta-package Sandia National Laboratories Trilinos pour le calcul scientifique en C ++. Zoltan dispose de ses propres partitionneurs hiérarchiques et interfaces dans ParMETIS et PT-Scotch.
Graph500
Si vous travaillez à la fine pointe de la recherche simultanée, de l'optimisation (chemin le plus court à source unique) et de l'orientation orientée (ensemble indépendant maximal), vous serez également intéressé par le benchmark Graph500 disponible gratuitement .
Peut-être que la bibliothèque de graphiques Boost est ce que vous recherchez. Il dispose d'un analyseur pour lire les graphiques spécifiés au format DOT de GraphViz. Bien que je ne connaisse pas vraiment la surcharge de la mémoire, elle fournit une variante pour la parallélisation .
Une autre bibliothèque de graphes est LEMON mais je ne la connais pas vraiment et si elle prend en charge la parallélisation, elle n'est pas annoncée. Son site Web fait cependant bonne impression;)
la source
Je voudrais également mentionner STINGER , une structure de données de graphique dynamique conçue pour le parallélisme. Selon le site Web, il est conçu pour les objectifs suivants:
Il n'est pas aussi générique que LEMON ou Boost Graph Library et à un stade de développement antérieur. Si vous le vérifiez, je serais intéressé par vos commentaires.
la source