Week 8 ( 20th July to 26th July)
I began the week by shortlisting which functions should be included in the final benchmark set for toqito. To make this decision, I ranked the repository files by import frequency and selected functions that would give both breadth and depth of coverage. Functions like toqito.states.basis, toqito.matrix_ops.to_density_matrix, and toqito.perms.permute_systems made the cut, while utility checks like is_square and is_density were excluded as they didn’t provide meaningful benchmarking data.
The majority of the week went into implementing PR #19
, which introduced 48 commits worth of benchmarks spanning core linear algebra, states, permutations, and channels. In parallel, I also added support for ketjl benchmarks (PR #20
), bringing Julia into parity with toqito and qutipy.
By the end of the week, the project had CI workflows running benchmarks for all three libraries, with over a dozen new functions benchmarked consistently across implementations.
Progress:
- PR #19
- Added benchmarks for 20+ core functions across
toqitoandqutipy. - Added benchmarks for random generators.
- Introduced CI workflows for both
toqitoandqutipybenchmark runs.
- Added benchmarks for 20+ core functions across
- PR #20 Add benchmarks in
ketjl- Added Julia (
ketjl) benchmarks for most of the same functions as above.
- Added Julia (
Issues:
-
In
ketjlbenchmarks, boolean values in configs (e.g.,True) needed to be handled as strings for proper run ID-ing; otherwise Julia treated them as logical values, which caused merge issues. -
Some placeholder/commented-out benchmark suites (e.g.,
apply_map) still need bug fixes before enabling.