Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Community call - 2024.02.29 #14

Open
gdalle opened this issue Feb 26, 2024 · 5 comments
Open

Community call - 2024.02.29 #14

gdalle opened this issue Feb 26, 2024 · 5 comments

Comments

@gdalle
Copy link
Member

gdalle commented Feb 26, 2024

Tentative agenda

@gdalle
Copy link
Member Author

gdalle commented Feb 29, 2024

Benchmarking

  • Different approaches possible
  • Basic functionality: BenchmarkTools.jl and PkgBenchmark.jl
  • Integration with CI: BenchmarkCI.jl (unmaintained)
  • How to store and display benchmark results? Ideally in the PR comments
  • Problem: PRs from public forks don't have write permissions to the target repo (for security reasons)
  • Solution: chained workflows?
    1. One which runs code from a fork (potential risk), stores the benchmark results as JSON in the workflow uploads
    2. One which takes the workflow JSON uploads, formats them and puts a comment in the PR
  • No need to keep benchmarks from long ago
  • ITensors.jl uses a similar workflow
  • For testing, @filchristou needs to add a workflow file to master and experiment with it, vote with reacs

@gdalle
Copy link
Member Author

gdalle commented Feb 29, 2024

Graph generators

  • Dimitrios was developing packages for community detection
  • Need for new graph generators that are used as benchmark: Lancichinetti-Fortunato-Radicchi
  • Pull request involved external dependencies with C++ author code: Lancichinetti-Fortunato-Radicchi generators Graphs.jl#345
  • Wrapped in a jll in https://github.com/DiNiXi/lfr-benchmark-c and added to Yggdrasil
  • Basic Graphs.jl should have very few dependencies
  • Solution: do a Julia rewrite and then submit it to the main package
  • Don't put the C++-dependent code in GraphsExtras, put it in a personal repo
  • Same idea with https://github.com/fcdimitr/fglt, relies on linear algebra
  • SuiteSparseGraphBLAS could be an extension cause it is generic, but not algorithm-specific binaries

@gdalle
Copy link
Member Author

gdalle commented Feb 29, 2024

Other organization packages

Community detection:

  • Empty and archive CommunityDetection.jl, move code to Graphs.jl
  • Remove kmeans dependency for spectral methods, just compute the embeddings cause the user is free to cluster however they want, or just visualize
  • Separate page about "community structures" into metrics and algorithms

Flows and matchings:

Can we put new algorithms in the main namespace if the PR is readable? Vote with reacs

@gdalle
Copy link
Member Author

gdalle commented Feb 29, 2024

Submodules

  • At the moment, Experimental, Parallel, LinAlg, SimpleGraphs, Test
  • More thematic submodules could help resolve namespace clashes
  • But this can also be solved by dispatch or name changes
  • Why is there a SimpleGraphs submodule?
  • The discussion is a long term one

@gdalle
Copy link
Member Author

gdalle commented Feb 29, 2024

Graphs 2.0

  • No progress
  • Get funding? @gdalle will be a PI soon, can start looking for grants

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant