Skip to content

v0.4.1: Parallel Features Production Release

Choose a tag to compare

@Routhleck Routhleck released this 23 Aug 13:34
· 56 commits to master since this release

🔧 CANNS-Ripser v0.4.1: Parallel Features Production Release

This patch release ensures that all production builds correctly include the parallel optimizations that provide significant performance improvements on multi-core systems.

🎯 What This Fixes

The v0.4.1 release addresses a configuration issue where some v0.4.0 builds may not have included the Rayon-based parallel optimizations. This release ensures that:

  • Parallel features are enabled by default in Cargo.toml
  • Production builds use parallel features via pyproject.toml configuration
  • Multi-threading is active for edge enumeration and matrix operations
  • Full performance benefits are available to all users

🚀 Performance Impact

With parallel features properly enabled, users can expect:

  • Multi-core utilization through Rayon work-stealing parallelism
  • Improved edge enumeration performance on larger datasets
  • Parallel matrix operations during persistent homology computation
  • Better resource utilization on modern multi-core systems

🔧 Technical Details

Configuration Changes

  • Default features: default = ["parallel"] in Cargo.toml
  • Release builds: features = ["parallel"] in pyproject.toml
  • Verification: maturin confirms parallel features are active

Build Verification

📡 Using build options features from pyproject.toml

This output confirms that parallel features are correctly loaded during builds.

✅ Quality Assurance

  • Accuracy: All 6/6 tests pass with 100% compatibility with ripser.py
  • Functionality: No changes to API or algorithm behavior
  • Performance: Verified multi-threading capabilities are active

🛠 Installation

This release will automatically include parallel optimizations:

pip install canns-ripser==0.4.1

Or build from source:

git clone https://github.com/Routhleck/canns-ripser.git
cd canns-ripser  
git checkout v0.4.1
maturin develop --release  # Automatically includes parallel features

📊 Performance Expectations

With parallel features properly enabled, you should see:

  • Mean speedup: 1.13x across diverse benchmarks
  • Peak performance: Up to 1.82x on favorable datasets
  • Multi-core scaling on systems with multiple CPU cores
  • Stable memory usage: 1.01x memory ratio maintained

⚠ Upgrade Recommendation

All users should upgrade to v0.4.1 to ensure they receive the full performance benefits of the parallel optimizations implemented in the v0.4.0 series.


Full Changelog: v0.4.0...v0.4.1