v0.6.1
What's Changed
Breaking changes
- The number of workers initialized (for non-distributed pools) is now set to, in order of preference, 1. the environment variable
COTENGRA_NUM_WORKERS
, 2. the environment variableOMP_NUM_THREADS
, or 3.os.cpu_count()
.
Enhancements
- add RandomGreedyOptimizer which is a lightweight and performant randomized greedy optimizer, eschewing both hyper parameter tuning and full contraction tree construction, making it suitable for very large contractions (10,000s of tensors+).
- add optimize_random_greedy_track_flops which runs N trials of (random) greedy path optimization, whilst computing the FLOP count simultaneously. This or its accelerated rust counterpart in
cotengrust
is the driver for the above optimizer. - add
parallel="threads"
backend, and make it the default forRandomGreedyOptimizer
whencotengrust
is present, since its version ofoptimize_random_greedy_track_flops
releases the GIL. - significantly improve both the speed and memory usage of
SliceFinder
- alias
tree.total_cost()
totree.combo_cost()
Full Changelog: v0.6.0...v0.6.1