Skip to content

v1.4.0

Compare
Choose a tag to compare
@ragibson ragibson released this 05 Jun 02:42
· 7 commits to master since this release
ab94be2

There are a number of separate improvements in this release.

  • Improved memory usage and performance of parallel Leiden algorithm optimization (see #13). This also addresses pathologically bad job allocation when the number of runs is in the low 100s.
For example, on a very cheap (~$300) laptop with sweeps of gamma in (0, 2) and omega in (0, 2):
  - 1,000,000 runs of a single-layer 32-node,   78-edge   graph went from ~3.9 minutes to ~3.7 minutes
  - 100 runs       of a single-layer 100k-node, 500k-edge graph went from ~22.2 minutes to ~6.0 minutes
  - 160,000 runs   of a 3-layer      90-node,   416-edge  graph went from ~4.3 minutes to ~4.2 minutes
  - 50 runs        of a 50-layer     25k-node,  102k-edge graph went from ~6.5 minutes to ~6.5 minutes
  • Added basic test coverage for all documented functions (see #11).
    • This includes tests for all documentation examples, including plotting functionality.
    • As part of the parallel Leiden algorithm optimization, we've also added tests to ensure that parallel Leiden has nearly optimal scaling compared to single-threaded optimization.
  • Corrected usage of outdated Matplotlib APIs and improved default arguments in plotting functionality.
  • Tweaked warnings from common usage to better reflect their importance (see #10).
    • Removed warnings about the inefficiency of the Leiden algorithm implementation in leidenalg for multi-layer networks as the number of layers increases. Although this inefficiency remains, it is still one of the most widely used modularity optimization implementations.
    • Added warnings when multi-layer pruning functions truncate omega to the user-specified limit. This was already mentioned in the documentation but realistically should also be a warning.
  • Improved documentation by adding basic descriptions of available multi-layer network topologies and tweaking examples to use parallel Leiden algorithm functions (see #12).

Full Changelog: v1.3.6...v1.4.0