Boost Graph Library e LEMON
Come accenna Daniel nella sua risposta esaustiva , la libreria C ++ generale più completa è la Boost Graph Library . Esiste una nuova estensione di memoria distribuita in grado di eseguire alcuni algoritmi di base come la ricerca breadth-first e depth-first, il minimo spanning tree e la ricerca dei componenti collegati, ma non ho molta familiarità con il nuovo progetto. La stessa Boost Graph Library è rinomata e utilizzata in molti progetti in tutto il mondo.
Se stai eseguendo un lavoro di base sul grafico HPC, potresti voler iniziare con la libreria di grafici Boost, ma tieni presente che molti compilatori C ++ HPC hanno difficoltà con Boost (nonostante la sua aderenza piuttosto rigorosa agli standard C ++) e potrebbe essere necessario utilizzare un versione precedente di Boost o un compilatore non vendor come GCC per farlo funzionare sui sistemi HPC.
Una rapida occhiata ai repository di LEMON mostra che c'è un coinvolgimento del team di supercalcolo IBM BlueGene, ma non vedo dipendenze o configurazioni per MPI, quindi al momento è probabile che al momento sia solo una libreria di grafici seriali.
Bilanciamento del carico e (ri) partizionamento del grafico dinamico
Se sei interessato al bilanciamento del carico e al partizionamento grafico dinamico, hai diverse altre opzioni. Forse la libreria più conosciuta è ParMETIS , che è stata aggiornata alla versione 4 l'anno scorso. ParMETIS presenta una ponderazione basata sui vertici, che è importante per le simulazioni multi-fisica.
Il concorrente europeo di ParMETIS è PT-Scotch , che ha avuto prestazioni migliori per alcuni tipi di problemi, ma, simile a ParMETIS, non viene aggiornato di frequente.
Potresti anche essere interessato a Zoltan , che fa parte del meta-pacchetto Trilinos dei laboratori nazionali Sandia per il calcolo scientifico in C ++. Zoltan presenta i suoi partizionatori e interfacce gerarchici sia in ParMETIS che in PT-Scotch.
Graph500
Se stai lavorando al limite massimo della ricerca simultanea, dell'ottimizzazione (percorso più breve per singola fonte) e orientato ai margini (set indipendente massimo), ti interesserà anche il benchmark Graph500 liberamente disponibile .