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 toqito and qutipy.
    • Added benchmarks for random generators.
    • Introduced CI workflows for both toqito and qutipy benchmark runs.
  • PR #20 Add benchmarks in ketjl
    • Added Julia (ketjl) benchmarks for most of the same functions as above.

Issues:

  • In ketjl benchmarks, 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.


<
Previous Post
Week 7 ( 14th July to 20th July)
>
Next Post
Week 9 (27th July to 2nd August)