Developpez.com - Rubrique HPC

Le Club des Développeurs et IT Pro

Julia et les graphes

Présentation de la bibliothèque LightGraphs et de son écosystème, un tutoriel de Thibaut Cuvelier

Le 2020-02-27 00:54:28, par dourouc05, Responsable Qt & Livres
Julia est un langage de programmation orienté vers les applications scientifiques. Ces dernières ont assez souvent besoin de travailler avec des graphes, des structures de données assez courantes. LightGraphs.jl est une implémentation de haute performance tant de la structure de données que d'algorithmes classiques sur des graphes.

Lire le tutoriel
  Discussion forum
4 commentaires
  • MaximeCh
    Membre éprouvé
    Intéressant, quel est le rapport de performances avec boost?
    Peut-on faire des algorithmes de Dreyfus-Wagner pour arbres de Steiner? Quelle est la différence de couverture fonctionnelle entre les deux bibliothèques lightgraphs.jl et boost?
  • dourouc05
    Responsable Qt & Livres
    On ne peut malheureusement pas dire que la bibliothèque soit aussi complète que la BGL. En ce qui concerne la performance, je n'ai pas connaissance de chiffres précis et récents (tout ce que j'ai date de 2015 : https://github.com/JuliaGraphs/Light....jl/issues/259).
    Tu as une série de scripts pour tester la performance de LightGraphs : https://github.com/JuliaGraphs/Light...ster/benchmark. Un projet GSoC est prévu pour augmenter cette liste : https://julialang.org/jsoc/gsoc/graphs/.

    À tout hasard, serais-tu partant pour lancer des tests de performance avec la BGL ? Je pourrais écrire, en parallèle, le code correspondant avec LightGraphs et on pourrait comparer (en lançant sur la même machine, bien entendu).

    Pour les arbres de Steiner, il n'y a pour le moment qu'une seule implémentation : https://github.com/JuliaGraphs/Light...teiner_tree.jl, avec un algorithme très basique (https://en.wikipedia.org/wiki/Steine...e_Steiner_tree).
  • MaximeCh
    Membre éprouvé
    Envoyé par dourouc05
    À tout hasard, serais-tu partant pour lancer des tests de performance avec la BGL ? Je pourrais écrire, en parallèle, le code correspondant avec LightGraphs et on pourrait comparer (en lançant sur la même machine, bien entendu).
    Je connais assez mal la BGL, je suis intervenu surtout pour alimenter la discussion. Je suis partant pour tenter quelques benchmarks, mais je connais encore mois bien parallel-BGL
  • dourouc05
    Responsable Qt & Livres
    Voici une comparaison de bibliothèques assez efficaces en Python (notamment, graph-tool, qui se targue d'utiliser énormément la BGL pour ses calculs) et LightGraphs côté Julia : https://www.timlrx.com/2020/05/10/be...k-packages-v2/. En gros, elles se valent toutes (sauf NetworkX en Python).