QuantumSavory / QuantumClifford.jl

Clifford circuits, graph states, and other quantum Stabilizer formalism tools.
MIT License
113 stars 45 forks source link

fix #258: Documentation on myriad ways to construct `Stab/Destab/MixedDestab` objects #283

Open Fe-r-oz opened 4 months ago

Fe-r-oz commented 4 months ago

Resolving https://github.com/QuantumSavory/QuantumClifford.jl/issues/258 by adding more documentation about the methods of MixedDestabilizer, Stabilizer, Destabilizer.

MixedDestabilizer is completed. The other two methods along with schematics is left to do.

codecov[bot] commented 4 months ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 82.36%. Comparing base (44f618a) to head (b7b613a).

Additional details and impacted files ```diff @@ Coverage Diff @@ ## master #283 +/- ## ========================================== + Coverage 82.20% 82.36% +0.15% ========================================== Files 59 59 Lines 3940 3940 ========================================== + Hits 3239 3245 +6 + Misses 701 695 -6 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

github-actions[bot] commented 4 months ago
Benchmark Result # Judge result # Benchmark Report for */home/runner/work/QuantumClifford.jl/QuantumClifford.jl* ## Job Properties * Time of benchmarks: - Target: 26 May 2024 - 14:44 - Baseline: 26 May 2024 - 14:51 * Package commits: - Target: 3e20ba - Baseline: 44f618 * Julia commits: - Target: d8f37c - Baseline: d8f37c * Julia command flags: - Target: None - Baseline: None * Environment variables: - Target: None - Baseline: None ## Results A ratio greater than `1.0` denotes a possible regression (marked with :x:), while a ratio less than `1.0` denotes a possible improvement (marked with :white_check_mark:). Only significant results - results that indicate possible regressions or improvements - are shown below (thus, an empty table means that all benchmark results remained invariant between builds). | ID | time ratio | memory ratio | |--------------------------------------------------------------------|------------------------------|------------------------------| | `["circuitsim", "mctrajectories_sumtype", "q1001_r1"]` | 1.09 (5%) :x: | 1.00 (1%) | | `["clifford", "dense", "dense500_on_diag500_destab"]` | 1.16 (5%) :x: | 1.00 (1%) | | `["ecc", "evaluate_decoder", "shor_bp_shorsyn"]` | 0.93 (5%) :white_check_mark: | 0.98 (1%) :white_check_mark: | | `["ecc", "evaluate_decoder", "toric8_bp_comm"]` | 1.02 (5%) | 0.99 (1%) :white_check_mark: | | `["ecc", "evaluate_decoder", "toric8_bp_naivesyn"]` | 1.05 (5%) :x: | 1.03 (1%) :x: | | `["pauli", "mul", "1000"]` | 1.07 (5%) :x: | 1.00 (1%) | ## Benchmark Group List Here's a list of all the benchmark groups executed by this job: - `["circuitsim", "compactification"]` - `["circuitsim", "mctrajectories"]` - `["circuitsim", "mctrajectories_sumtype"]` - `["circuitsim", "mctrajectories_union"]` - `["circuitsim", "pftrajectories"]` - `["circuitsim", "pftrajectories_sumtype"]` - `["circuitsim", "pftrajectories_union"]` - `["clifford", "dense"]` - `["clifford", "symbolic"]` - `["ecc", "evaluate_decoder"]` - `["pauli", "mul"]` - `["stabilizer", "canon"]` - `["stabilizer", "project"]` - `["stabilizer", "tensor"]` - `["stabilizer", "trace"]` ## Julia versioninfo ### Target ``` Julia Version 1.12.0-DEV.603 Commit d8f37c9920a (2024-05-25 21:46 UTC) Build Info: Official https://julialang.org/ release Platform Info: OS: Linux (x86_64-linux-gnu) Ubuntu 22.04.4 LTS uname: Linux 6.5.0-1021-azure #22~22.04.1-Ubuntu SMP Tue Apr 30 16:08:18 UTC 2024 x86_64 x86_64 CPU: AMD EPYC 7763 64-Core Processor: speed user nice sys idle irq #1 0 MHz 1718 s 0 s 167 s 8034 s 0 s #2 0 MHz 3284 s 0 s 190 s 6435 s 0 s #3 0 MHz 2121 s 0 s 154 s 7649 s 0 s #4 0 MHz 2105 s 0 s 178 s 7649 s 0 s Memory: 15.606502532958984 GB (13304.86328125 MB free) Uptime: 998.04 sec Load Avg: 1.0 1.01 0.73 WORD_SIZE: 64 LLVM: libLLVM-17.0.6 (ORCJIT, znver3) Threads: 1 default, 0 interactive, 1 GC (on 4 virtual cores) ``` ### Baseline ``` Julia Version 1.12.0-DEV.603 Commit d8f37c9920a (2024-05-25 21:46 UTC) Build Info: Official https://julialang.org/ release Platform Info: OS: Linux (x86_64-linux-gnu) Ubuntu 22.04.4 LTS uname: Linux 6.5.0-1021-azure #22~22.04.1-Ubuntu SMP Tue Apr 30 16:08:18 UTC 2024 x86_64 x86_64 CPU: AMD EPYC 7763 64-Core Processor: speed user nice sys idle irq #1 0 MHz 2426 s 0 s 207 s 11434 s 0 s #2 0 MHz 5046 s 0 s 246 s 8769 s 0 s #3 0 MHz 2690 s 0 s 197 s 11188 s 0 s #4 0 MHz 3169 s 0 s 229 s 10686 s 0 s Memory: 15.606502532958984 GB (13248.21484375 MB free) Uptime: 1413.86 sec Load Avg: 1.0 1.01 0.85 WORD_SIZE: 64 LLVM: libLLVM-17.0.6 (ORCJIT, znver3) Threads: 1 default, 0 interactive, 1 GC (on 4 virtual cores) ``` --- # Target result # Benchmark Report for */home/runner/work/QuantumClifford.jl/QuantumClifford.jl* ## Job Properties * Time of benchmark: 26 May 2024 - 14:44 * Package commit: 3e20ba * Julia commit: d8f37c * Julia command flags: None * Environment variables: None ## Results Below is a table of this job's results, obtained by running the benchmarks. The values listed in the `ID` column have the structure `[parent_group, child_group, ..., key]`, and can be used to index into the BaseBenchmarks suite to retrieve the corresponding benchmarks. The percentages accompanying time and memory values in the below table are noise tolerances. The "true" time/memory value for a given benchmark is expected to fall within this percentage of the reported value. An empty cell means that the value was zero. | ID | time | GC time | memory | allocations | |--------------------------------------------------------------------|----------------:|----------:|----------------:|------------:| | `["circuitsim", "compactification", "compact"]` | 6.945 ms (5%) | | | | | `["circuitsim", "compactification", "no_compact"]` | 7.113 ms (5%) | | 281.25 KiB (1%) | 6000 | | `["circuitsim", "mctrajectories", "q1001_r1"]` | 15.250 ms (5%) | | 500.77 KiB (1%) | 18019 | | `["circuitsim", "mctrajectories", "q101_r1"]` | 172.504 μs (5%) | | 50.53 KiB (1%) | 1818 | | `["circuitsim", "mctrajectories_sumtype", "q1001_r1"]` | 14.522 ms (5%) | | 496 bytes (1%) | 9 | | `["circuitsim", "mctrajectories_sumtype", "q101_r1"]` | 121.899 μs (5%) | | 256 bytes (1%) | 8 | | `["circuitsim", "mctrajectories_union", "q1001_r1"]` | 13.064 ms (5%) | | 496 bytes (1%) | 9 | | `["circuitsim", "mctrajectories_union", "q101_r1"]` | 120.737 μs (5%) | | 256 bytes (1%) | 8 | | `["circuitsim", "pftrajectories", "q1001_r1"]` | 59.472 μs (5%) | | 93.80 KiB (1%) | 2001 | | `["circuitsim", "pftrajectories", "q1001_r100"]` | 170.019 μs (5%) | | 93.80 KiB (1%) | 2001 | | `["circuitsim", "pftrajectories", "q1001_r10000"]` | 1.095 ms (5%) | | 93.80 KiB (1%) | 2001 | | `["circuitsim", "pftrajectories", "q101_r1"]` | 5.991 μs (5%) | | 9.42 KiB (1%) | 201 | | `["circuitsim", "pftrajectories_sumtype", "q1001_r1"]` | 42.921 μs (5%) | | | | | `["circuitsim", "pftrajectories_sumtype", "q1001_r100"]` | 149.671 μs (5%) | | | | | `["circuitsim", "pftrajectories_sumtype", "q1001_r10000"]` | 1.079 ms (5%) | | | | | `["circuitsim", "pftrajectories_sumtype", "q1001_r10000_fastrow"]` | 5.843 ms (5%) | | | | | `["circuitsim", "pftrajectories_sumtype", "q101_r1"]` | 4.318 μs (5%) | | | | | `["circuitsim", "pftrajectories_union", "q1001_r1"]` | 22.291 μs (5%) | | 96 bytes (1%) | 2 | | `["circuitsim", "pftrajectories_union", "q1001_r100"]` | 132.829 μs (5%) | | 96 bytes (1%) | 2 | | `["circuitsim", "pftrajectories_union", "q1001_r10000"]` | 1.054 ms (5%) | | 96 bytes (1%) | 2 | | `["circuitsim", "pftrajectories_union", "q101_r1"]` | 2.304 μs (5%) | | 96 bytes (1%) | 2 | | `["clifford", "dense", "cnot250_on_dense500_destab"]` | 11.426 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "cnot250_on_dense500_stab"]` | 5.800 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "cnot250_on_diag500_destab"]` | 975.905 μs (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "cnot250_on_diag500_stab"]` | 559.973 μs (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "cnot_on_dense500_destab"]` | 49.303 μs (5%) | | 368 bytes (1%) | 10 | | `["clifford", "dense", "cnot_on_dense500_stab"]` | 22.613 μs (5%) | | 368 bytes (1%) | 10 | | `["clifford", "dense", "cnot_on_diag500_destab"]` | 25.147 μs (5%) | | 368 bytes (1%) | 10 | | `["clifford", "dense", "cnot_on_diag500_stab"]` | 12.785 μs (5%) | | 368 bytes (1%) | 10 | | `["clifford", "dense", "dense500_on_dense500_destab"]` | 11.461 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "dense500_on_dense500_stab"]` | 5.814 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "dense500_on_diag500_destab"]` | 1.117 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "dense500_on_diag500_stab"]` | 560.003 μs (5%) | | 512 bytes (1%) | 8 | | `["clifford", "symbolic", "cnot250_on_dense500_destab"]` | 1.475 ms (5%) | | | | | `["clifford", "symbolic", "cnot250_on_dense500_stab"]` | 699.875 μs (5%) | | | | | `["clifford", "symbolic", "cnot250_on_diag500_destab"]` | 1.199 ms (5%) | | | | | `["clifford", "symbolic", "cnot250_on_diag500_stab"]` | 584.910 μs (5%) | | | | | `["clifford", "symbolic", "cnot_on_dense500_destab"]` | 4.859 μs (5%) | | | | | `["clifford", "symbolic", "cnot_on_dense500_stab"]` | 2.364 μs (5%) | | | | | `["clifford", "symbolic", "cnot_on_diag500_destab"]` | 4.789 μs (5%) | | | | | `["clifford", "symbolic", "cnot_on_diag500_stab"]` | 2.364 μs (5%) | | | | | `["ecc", "evaluate_decoder", "shor_bp_comm"]` | 1.826 ms (5%) | | 1.76 MiB (1%) | 42387 | | `["ecc", "evaluate_decoder", "shor_bp_naivesyn"]` | 4.356 ms (5%) | | 3.63 MiB (1%) | 82013 | | `["ecc", "evaluate_decoder", "shor_bp_shorsyn"]` | 4.784 ms (5%) | | 3.72 MiB (1%) | 83095 | | `["ecc", "evaluate_decoder", "shor_pybp_comm"]` | 25.932 ms (5%) | | 3.97 MiB (1%) | 116084 | | `["ecc", "evaluate_decoder", "shor_pybp_naivesyn"]` | 51.035 ms (5%) | | 7.99 MiB (1%) | 228133 | | `["ecc", "evaluate_decoder", "shor_pybp_shorsyn"]` | 52.072 ms (5%) | | 8.07 MiB (1%) | 229131 | | `["ecc", "evaluate_decoder", "shor_table_comm"]` | 256.210 μs (5%) | | 241.48 KiB (1%) | 4595 | | `["ecc", "evaluate_decoder", "shor_table_naivesyn"]` | 1.095 ms (5%) | | 350.88 KiB (1%) | 5155 | | `["ecc", "evaluate_decoder", "shor_table_shorsyn"]` | 1.523 ms (5%) | | 440.22 KiB (1%) | 6153 | | `["ecc", "evaluate_decoder", "toric8_bp_comm"]` | 709.457 ms (5%) | 14.380 ms | 171.81 MiB (1%) | 1030223 | | `["ecc", "evaluate_decoder", "toric8_bp_naivesyn"]` | 1.468 s (5%) | 27.231 ms | 358.43 MiB (1%) | 2180591 | | `["ecc", "evaluate_decoder", "toric8_bp_shorsyn"]` | 1.449 s (5%) | 29.277 ms | 353.80 MiB (1%) | 2172745 | | `["ecc", "evaluate_decoder", "toric8_pybp_comm"]` | 398.840 ms (5%) | | 7.31 MiB (1%) | 135575 | | `["ecc", "evaluate_decoder", "toric8_pybp_naivesyn"]` | 821.332 ms (5%) | | 16.90 MiB (1%) | 317606 | | `["ecc", "evaluate_decoder", "toric8_pybp_shorsyn"]` | 836.222 ms (5%) | | 19.38 MiB (1%) | 351522 | | `["ecc", "evaluate_decoder", "toric8_pymatch_comm"]` | 4.217 ms (5%) | | 1.95 MiB (1%) | 23180 | | `["ecc", "evaluate_decoder", "toric8_pymatch_naivesyn"]` | 17.054 ms (5%) | | 6.03 MiB (1%) | 92823 | | `["ecc", "evaluate_decoder", "toric8_pymatch_shorsyn"]` | 26.188 ms (5%) | | 8.50 MiB (1%) | 126739 | | `["ecc", "evaluate_decoder", "toric8_table_comm"]` | 2.685 ms (5%) | | 1.64 MiB (1%) | 23086 | | `["ecc", "evaluate_decoder", "toric8_table_naivesyn"]` | 14.789 ms (5%) | | 5.38 MiB (1%) | 92628 | | `["ecc", "evaluate_decoder", "toric8_table_shorsyn"]` | 24.031 ms (5%) | | 7.86 MiB (1%) | 126544 | | `["pauli", "mul", "100"]` | 14.827 ns (5%) | | | | | `["pauli", "mul", "1000"]` | 18.820 ns (5%) | | | | | `["pauli", "mul", "100000"]` | 729.215 ns (5%) | | | | | `["pauli", "mul", "20000000"]` | 179.297 μs (5%) | | | | | `["stabilizer", "canon", "cano500"]` | 3.018 ms (5%) | | | | | `["stabilizer", "canon", "diag_cano500"]` | 618.355 μs (5%) | | | | | `["stabilizer", "canon", "diag_gott500"]` | 4.149 ms (5%) | | 5.19 MiB (1%) | 34521 | | `["stabilizer", "canon", "diag_rref500"]` | 674.170 μs (5%) | | | | | `["stabilizer", "canon", "gott500"]` | 6.603 ms (5%) | | 5.19 MiB (1%) | 34531 | | `["stabilizer", "canon", "md_cano500"]` | 1.537 ms (5%) | | | | | `["stabilizer", "canon", "md_rref500"]` | 1.571 ms (5%) | | | | | `["stabilizer", "canon", "rref500"]` | 3.126 ms (5%) | | | | | `["stabilizer", "project", "destabilizer"]` | 17.704 μs (5%) | | 288 bytes (1%) | 5 | | `["stabilizer", "project", "stabilizer"]` | 8.717 μs (5%) | | 80 bytes (1%) | 2 | | `["stabilizer", "tensor", "diag_pow5_20"]` | 1.331 ms (5%) | | 23.97 MiB (1%) | 34 | | `["stabilizer", "tensor", "pow5_20"]` | 2.436 μs (5%) | | 6.44 KiB (1%) | 31 | | `["stabilizer", "trace", "destabilizer"]` | 30.858 μs (5%) | | 80 bytes (1%) | 2 | | `["stabilizer", "trace", "stabilizer"]` | 24.697 μs (5%) | | 112 bytes (1%) | 3 | ## Benchmark Group List Here's a list of all the benchmark groups executed by this job: - `["circuitsim", "compactification"]` - `["circuitsim", "mctrajectories"]` - `["circuitsim", "mctrajectories_sumtype"]` - `["circuitsim", "mctrajectories_union"]` - `["circuitsim", "pftrajectories"]` - `["circuitsim", "pftrajectories_sumtype"]` - `["circuitsim", "pftrajectories_union"]` - `["clifford", "dense"]` - `["clifford", "symbolic"]` - `["ecc", "evaluate_decoder"]` - `["pauli", "mul"]` - `["stabilizer", "canon"]` - `["stabilizer", "project"]` - `["stabilizer", "tensor"]` - `["stabilizer", "trace"]` ## Julia versioninfo ``` Julia Version 1.12.0-DEV.603 Commit d8f37c9920a (2024-05-25 21:46 UTC) Build Info: Official https://julialang.org/ release Platform Info: OS: Linux (x86_64-linux-gnu) Ubuntu 22.04.4 LTS uname: Linux 6.5.0-1021-azure #22~22.04.1-Ubuntu SMP Tue Apr 30 16:08:18 UTC 2024 x86_64 x86_64 CPU: AMD EPYC 7763 64-Core Processor: speed user nice sys idle irq #1 0 MHz 1718 s 0 s 167 s 8034 s 0 s #2 0 MHz 3284 s 0 s 190 s 6435 s 0 s #3 0 MHz 2121 s 0 s 154 s 7649 s 0 s #4 0 MHz 2105 s 0 s 178 s 7649 s 0 s Memory: 15.606502532958984 GB (13304.86328125 MB free) Uptime: 998.04 sec Load Avg: 1.0 1.01 0.73 WORD_SIZE: 64 LLVM: libLLVM-17.0.6 (ORCJIT, znver3) Threads: 1 default, 0 interactive, 1 GC (on 4 virtual cores) ``` --- # Baseline result # Benchmark Report for */home/runner/work/QuantumClifford.jl/QuantumClifford.jl* ## Job Properties * Time of benchmark: 26 May 2024 - 14:51 * Package commit: 44f618 * Julia commit: d8f37c * Julia command flags: None * Environment variables: None ## Results Below is a table of this job's results, obtained by running the benchmarks. The values listed in the `ID` column have the structure `[parent_group, child_group, ..., key]`, and can be used to index into the BaseBenchmarks suite to retrieve the corresponding benchmarks. The percentages accompanying time and memory values in the below table are noise tolerances. The "true" time/memory value for a given benchmark is expected to fall within this percentage of the reported value. An empty cell means that the value was zero. | ID | time | GC time | memory | allocations | |--------------------------------------------------------------------|----------------:|----------:|----------------:|------------:| | `["circuitsim", "compactification", "compact"]` | 7.064 ms (5%) | | | | | `["circuitsim", "compactification", "no_compact"]` | 7.176 ms (5%) | | 281.25 KiB (1%) | 6000 | | `["circuitsim", "mctrajectories", "q1001_r1"]` | 15.190 ms (5%) | | 500.77 KiB (1%) | 18019 | | `["circuitsim", "mctrajectories", "q101_r1"]` | 171.702 μs (5%) | | 50.53 KiB (1%) | 1818 | | `["circuitsim", "mctrajectories_sumtype", "q1001_r1"]` | 13.329 ms (5%) | | 496 bytes (1%) | 9 | | `["circuitsim", "mctrajectories_sumtype", "q101_r1"]` | 121.657 μs (5%) | | 256 bytes (1%) | 8 | | `["circuitsim", "mctrajectories_union", "q1001_r1"]` | 13.098 ms (5%) | | 496 bytes (1%) | 9 | | `["circuitsim", "mctrajectories_union", "q101_r1"]` | 120.696 μs (5%) | | 256 bytes (1%) | 8 | | `["circuitsim", "pftrajectories", "q1001_r1"]` | 59.201 μs (5%) | | 93.80 KiB (1%) | 2001 | | `["circuitsim", "pftrajectories", "q1001_r100"]` | 173.925 μs (5%) | | 93.80 KiB (1%) | 2001 | | `["circuitsim", "pftrajectories", "q1001_r10000"]` | 1.141 ms (5%) | | 93.80 KiB (1%) | 2001 | | `["circuitsim", "pftrajectories", "q101_r1"]` | 5.961 μs (5%) | | 9.42 KiB (1%) | 201 | | `["circuitsim", "pftrajectories_sumtype", "q1001_r1"]` | 42.720 μs (5%) | | | | | `["circuitsim", "pftrajectories_sumtype", "q1001_r100"]` | 154.540 μs (5%) | | | | | `["circuitsim", "pftrajectories_sumtype", "q1001_r10000"]` | 1.130 ms (5%) | | | | | `["circuitsim", "pftrajectories_sumtype", "q1001_r10000_fastrow"]` | 5.833 ms (5%) | | | | | `["circuitsim", "pftrajectories_sumtype", "q101_r1"]` | 4.298 μs (5%) | | | | | `["circuitsim", "pftrajectories_union", "q1001_r1"]` | 22.001 μs (5%) | | 96 bytes (1%) | 2 | | `["circuitsim", "pftrajectories_union", "q1001_r100"]` | 136.545 μs (5%) | | 96 bytes (1%) | 2 | | `["circuitsim", "pftrajectories_union", "q1001_r10000"]` | 1.100 ms (5%) | | 96 bytes (1%) | 2 | | `["circuitsim", "pftrajectories_union", "q101_r1"]` | 2.274 μs (5%) | | 96 bytes (1%) | 2 | | `["clifford", "dense", "cnot250_on_dense500_destab"]` | 11.431 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "cnot250_on_dense500_stab"]` | 5.798 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "cnot250_on_diag500_destab"]` | 974.836 μs (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "cnot250_on_diag500_stab"]` | 559.829 μs (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "cnot_on_dense500_destab"]` | 48.902 μs (5%) | | 368 bytes (1%) | 10 | | `["clifford", "dense", "cnot_on_dense500_stab"]` | 22.612 μs (5%) | | 368 bytes (1%) | 10 | | `["clifford", "dense", "cnot_on_diag500_destab"]` | 25.458 μs (5%) | | 368 bytes (1%) | 10 | | `["clifford", "dense", "cnot_on_diag500_stab"]` | 12.824 μs (5%) | | 368 bytes (1%) | 10 | | `["clifford", "dense", "dense500_on_dense500_destab"]` | 11.430 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "dense500_on_dense500_stab"]` | 5.799 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "dense500_on_diag500_destab"]` | 966.631 μs (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "dense500_on_diag500_stab"]` | 559.818 μs (5%) | | 512 bytes (1%) | 8 | | `["clifford", "symbolic", "cnot250_on_dense500_destab"]` | 1.481 ms (5%) | | | | | `["clifford", "symbolic", "cnot250_on_dense500_stab"]` | 699.560 μs (5%) | | | | | `["clifford", "symbolic", "cnot250_on_diag500_destab"]` | 1.200 ms (5%) | | | | | `["clifford", "symbolic", "cnot250_on_diag500_stab"]` | 584.464 μs (5%) | | | | | `["clifford", "symbolic", "cnot_on_dense500_destab"]` | 4.849 μs (5%) | | | | | `["clifford", "symbolic", "cnot_on_dense500_stab"]` | 2.354 μs (5%) | | | | | `["clifford", "symbolic", "cnot_on_diag500_destab"]` | 4.798 μs (5%) | | | | | `["clifford", "symbolic", "cnot_on_diag500_stab"]` | 2.364 μs (5%) | | | | | `["ecc", "evaluate_decoder", "shor_bp_comm"]` | 1.842 ms (5%) | | 1.77 MiB (1%) | 42471 | | `["ecc", "evaluate_decoder", "shor_bp_naivesyn"]` | 4.342 ms (5%) | | 3.62 MiB (1%) | 81775 | | `["ecc", "evaluate_decoder", "shor_bp_shorsyn"]` | 5.131 ms (5%) | | 3.79 MiB (1%) | 84719 | | `["ecc", "evaluate_decoder", "shor_pybp_comm"]` | 25.875 ms (5%) | | 3.97 MiB (1%) | 116084 | | `["ecc", "evaluate_decoder", "shor_pybp_naivesyn"]` | 52.136 ms (5%) | | 7.99 MiB (1%) | 228133 | | `["ecc", "evaluate_decoder", "shor_pybp_shorsyn"]` | 52.656 ms (5%) | | 8.07 MiB (1%) | 229131 | | `["ecc", "evaluate_decoder", "shor_table_comm"]` | 254.798 μs (5%) | | 241.48 KiB (1%) | 4595 | | `["ecc", "evaluate_decoder", "shor_table_naivesyn"]` | 1.086 ms (5%) | | 350.88 KiB (1%) | 5155 | | `["ecc", "evaluate_decoder", "shor_table_shorsyn"]` | 1.512 ms (5%) | | 440.22 KiB (1%) | 6153 | | `["ecc", "evaluate_decoder", "toric8_bp_comm"]` | 693.213 ms (5%) | 11.547 ms | 174.38 MiB (1%) | 1045322 | | `["ecc", "evaluate_decoder", "toric8_bp_naivesyn"]` | 1.394 s (5%) | 22.857 ms | 349.08 MiB (1%) | 2125599 | | `["ecc", "evaluate_decoder", "toric8_bp_shorsyn"]` | 1.417 s (5%) | 29.099 ms | 356.20 MiB (1%) | 2186850 | | `["ecc", "evaluate_decoder", "toric8_pybp_comm"]` | 388.908 ms (5%) | | 7.31 MiB (1%) | 135575 | | `["ecc", "evaluate_decoder", "toric8_pybp_naivesyn"]` | 807.988 ms (5%) | | 16.90 MiB (1%) | 317606 | | `["ecc", "evaluate_decoder", "toric8_pybp_shorsyn"]` | 802.567 ms (5%) | | 19.38 MiB (1%) | 351522 | | `["ecc", "evaluate_decoder", "toric8_pymatch_comm"]` | 4.162 ms (5%) | | 1.95 MiB (1%) | 23180 | | `["ecc", "evaluate_decoder", "toric8_pymatch_naivesyn"]` | 16.873 ms (5%) | | 6.03 MiB (1%) | 92823 | | `["ecc", "evaluate_decoder", "toric8_pymatch_shorsyn"]` | 25.926 ms (5%) | | 8.50 MiB (1%) | 126739 | | `["ecc", "evaluate_decoder", "toric8_table_comm"]` | 2.646 ms (5%) | | 1.64 MiB (1%) | 23086 | | `["ecc", "evaluate_decoder", "toric8_table_naivesyn"]` | 14.659 ms (5%) | | 5.38 MiB (1%) | 92628 | | `["ecc", "evaluate_decoder", "toric8_table_shorsyn"]` | 23.862 ms (5%) | | 7.86 MiB (1%) | 126544 | | `["pauli", "mul", "100"]` | 14.556 ns (5%) | | | | | `["pauli", "mul", "1000"]` | 17.615 ns (5%) | | | | | `["pauli", "mul", "100000"]` | 716.545 ns (5%) | | | | | `["pauli", "mul", "20000000"]` | 187.131 μs (5%) | | | | | `["stabilizer", "canon", "cano500"]` | 3.016 ms (5%) | | | | | `["stabilizer", "canon", "diag_cano500"]` | 618.658 μs (5%) | | | | | `["stabilizer", "canon", "diag_gott500"]` | 4.155 ms (5%) | | 5.19 MiB (1%) | 34521 | | `["stabilizer", "canon", "diag_rref500"]` | 674.244 μs (5%) | | | | | `["stabilizer", "canon", "gott500"]` | 6.615 ms (5%) | | 5.19 MiB (1%) | 34531 | | `["stabilizer", "canon", "md_cano500"]` | 1.566 ms (5%) | | | | | `["stabilizer", "canon", "md_rref500"]` | 1.584 ms (5%) | | | | | `["stabilizer", "canon", "rref500"]` | 3.125 ms (5%) | | | | | `["stabilizer", "project", "destabilizer"]` | 17.733 μs (5%) | | 288 bytes (1%) | 5 | | `["stabilizer", "project", "stabilizer"]` | 8.987 μs (5%) | | 80 bytes (1%) | 2 | | `["stabilizer", "tensor", "diag_pow5_20"]` | 1.359 ms (5%) | | 23.97 MiB (1%) | 34 | | `["stabilizer", "tensor", "pow5_20"]` | 2.413 μs (5%) | | 6.44 KiB (1%) | 31 | | `["stabilizer", "trace", "destabilizer"]` | 30.998 μs (5%) | | 80 bytes (1%) | 2 | | `["stabilizer", "trace", "stabilizer"]` | 24.546 μs (5%) | | 112 bytes (1%) | 3 | ## Benchmark Group List Here's a list of all the benchmark groups executed by this job: - `["circuitsim", "compactification"]` - `["circuitsim", "mctrajectories"]` - `["circuitsim", "mctrajectories_sumtype"]` - `["circuitsim", "mctrajectories_union"]` - `["circuitsim", "pftrajectories"]` - `["circuitsim", "pftrajectories_sumtype"]` - `["circuitsim", "pftrajectories_union"]` - `["clifford", "dense"]` - `["clifford", "symbolic"]` - `["ecc", "evaluate_decoder"]` - `["pauli", "mul"]` - `["stabilizer", "canon"]` - `["stabilizer", "project"]` - `["stabilizer", "tensor"]` - `["stabilizer", "trace"]` ## Julia versioninfo ``` Julia Version 1.12.0-DEV.603 Commit d8f37c9920a (2024-05-25 21:46 UTC) Build Info: Official https://julialang.org/ release Platform Info: OS: Linux (x86_64-linux-gnu) Ubuntu 22.04.4 LTS uname: Linux 6.5.0-1021-azure #22~22.04.1-Ubuntu SMP Tue Apr 30 16:08:18 UTC 2024 x86_64 x86_64 CPU: AMD EPYC 7763 64-Core Processor: speed user nice sys idle irq #1 0 MHz 2426 s 0 s 207 s 11434 s 0 s #2 0 MHz 5046 s 0 s 246 s 8769 s 0 s #3 0 MHz 2690 s 0 s 197 s 11188 s 0 s #4 0 MHz 3169 s 0 s 229 s 10686 s 0 s Memory: 15.606502532958984 GB (13248.21484375 MB free) Uptime: 1413.86 sec Load Avg: 1.0 1.01 0.85 WORD_SIZE: 64 LLVM: libLLVM-17.0.6 (ORCJIT, znver3) Threads: 1 default, 0 interactive, 1 GC (on 4 virtual cores) ``` --- # Runtime information | Runtime Info | | |:--|:--| | BLAS #threads | 2 | | `BLAS.vendor()` | `lbt` | | `Sys.CPU_THREADS` | 4 | `lscpu` output: Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Address sizes: 48 bits physical, 48 bits virtual Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Vendor ID: AuthenticAMD Model name: AMD EPYC 7763 64-Core Processor CPU family: 25 Model: 1 Thread(s) per core: 2 Core(s) per socket: 2 Socket(s): 1 Stepping: 1 BogoMIPS: 4890.85 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl tsc_reliable nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy svm cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw topoext invpcid_single vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves clzero xsaveerptr rdpru arat npt nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold v_vmsave_vmload umip vaes vpclmulqdq rdpid fsrm Virtualization: AMD-V Hypervisor vendor: Microsoft Virtualization type: full L1d cache: 64 KiB (2 instances) L1i cache: 64 KiB (2 instances) L2 cache: 1 MiB (2 instances) L3 cache: 32 MiB (1 instance) NUMA node(s): 1 NUMA node0 CPU(s): 0-3 Vulnerability Gather data sampling: Not affected Vulnerability Itlb multihit: Not affected Vulnerability L1tf: Not affected Vulnerability Mds: Not affected Vulnerability Meltdown: Not affected Vulnerability Mmio stale data: Not affected Vulnerability Retbleed: Not affected Vulnerability Spec rstack overflow: Vulnerable: Safe RET, no microcode Vulnerability Spec store bypass: Vulnerable Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization Vulnerability Spectre v2: Mitigation; Retpolines; STIBP disabled; RSB filling; PBRSB-eIBRS Not affected; BHI Not affected Vulnerability Srbds: Not affected Vulnerability Tsx async abort: Not affected | Cpu Property | Value | |:------------------ |:---------------------------------------------------------- | | Brand | AMD EPYC 7763 64-Core Processor | | Vendor | :AMD | | Architecture | :Unknown | | Model | Family: 0xaf, Model: 0x01, Stepping: 0x01, Type: 0x00 | | Cores | 16 physical cores, 16 logical cores (on executing CPU) | | | No Hyperthreading hardware capability detected | | Clock Frequencies | Not supported by CPU | | Data Cache | Level 1:3 : (32, 512, 32768) kbytes | | | 64 byte cache line size | | Address Size | 48 bits virtual, 48 bits physical | | SIMD | 256 bit = 32 byte max. SIMD vector size | | Time Stamp Counter | TSC is accessible via `rdtsc` | | | TSC runs at constant rate (invariant from clock frequency) | | Perf. Monitoring | Performance Monitoring Counters (PMC) are not supported | | Hypervisor | Yes, Microsoft |
Benchmark Result # Judge result # Benchmark Report for */home/runner/work/QuantumClifford.jl/QuantumClifford.jl* ## Job Properties * Time of benchmarks: - Target: 26 May 2024 - 19:39 - Baseline: 26 May 2024 - 19:47 * Package commits: - Target: 44997c - Baseline: 44f618 * Julia commits: - Target: 768921 - Baseline: 768921 * Julia command flags: - Target: None - Baseline: None * Environment variables: - Target: None - Baseline: None ## Results A ratio greater than `1.0` denotes a possible regression (marked with :x:), while a ratio less than `1.0` denotes a possible improvement (marked with :white_check_mark:). Only significant results - results that indicate possible regressions or improvements - are shown below (thus, an empty table means that all benchmark results remained invariant between builds). | ID | time ratio | memory ratio | |--------------------------------------------------------------------|------------------------------|------------------------------| | `["ecc", "evaluate_decoder", "shor_bp_shorsyn"]` | 0.93 (5%) :white_check_mark: | 0.98 (1%) :white_check_mark: | | `["ecc", "evaluate_decoder", "toric8_bp_comm"]` | 0.93 (5%) :white_check_mark: | 0.93 (1%) :white_check_mark: | | `["ecc", "evaluate_decoder", "toric8_bp_naivesyn"]` | 1.02 (5%) | 0.98 (1%) :white_check_mark: | | `["ecc", "evaluate_decoder", "toric8_bp_shorsyn"]` | 1.00 (5%) | 0.98 (1%) :white_check_mark: | | `["pauli", "mul", "20000000"]` | 1.06 (5%) :x: | 1.00 (1%) | | `["stabilizer", "canon", "diag_rref500"]` | 0.89 (5%) :white_check_mark: | 1.00 (1%) | | `["stabilizer", "tensor", "diag_pow5_20"]` | 1.23 (5%) :x: | 1.00 (1%) | ## Benchmark Group List Here's a list of all the benchmark groups executed by this job: - `["circuitsim", "compactification"]` - `["circuitsim", "mctrajectories"]` - `["circuitsim", "mctrajectories_sumtype"]` - `["circuitsim", "mctrajectories_union"]` - `["circuitsim", "pftrajectories"]` - `["circuitsim", "pftrajectories_sumtype"]` - `["circuitsim", "pftrajectories_union"]` - `["clifford", "dense"]` - `["clifford", "symbolic"]` - `["ecc", "evaluate_decoder"]` - `["pauli", "mul"]` - `["stabilizer", "canon"]` - `["stabilizer", "project"]` - `["stabilizer", "tensor"]` - `["stabilizer", "trace"]` ## Julia versioninfo ### Target ``` Julia Version 1.12.0-DEV.605 Commit 768921e6f73 (2024-05-26 17:30 UTC) Build Info: Official https://julialang.org/ release Platform Info: OS: Linux (x86_64-linux-gnu) Ubuntu 22.04.4 LTS uname: Linux 6.5.0-1021-azure #22~22.04.1-Ubuntu SMP Tue Apr 30 16:08:18 UTC 2024 x86_64 x86_64 CPU: AMD EPYC 7763 64-Core Processor: speed user nice sys idle irq #1 0 MHz 2252 s 0 s 175 s 6653 s 0 s #2 0 MHz 2539 s 0 s 181 s 6363 s 0 s #3 0 MHz 2699 s 0 s 191 s 6186 s 0 s #4 0 MHz 1855 s 0 s 161 s 7061 s 0 s Memory: 15.606502532958984 GB (13348.2421875 MB free) Uptime: 913.39 sec Load Avg: 1.01 1.03 0.74 WORD_SIZE: 64 LLVM: libLLVM-17.0.6 (ORCJIT, znver3) Threads: 1 default, 0 interactive, 1 GC (on 4 virtual cores) ``` ### Baseline ``` Julia Version 1.12.0-DEV.605 Commit 768921e6f73 (2024-05-26 17:30 UTC) Build Info: Official https://julialang.org/ release Platform Info: OS: Linux (x86_64-linux-gnu) Ubuntu 22.04.4 LTS uname: Linux 6.5.0-1021-azure #22~22.04.1-Ubuntu SMP Tue Apr 30 16:08:18 UTC 2024 x86_64 x86_64 CPU: AMD EPYC 7763 64-Core Processor: speed user nice sys idle irq #1 0 MHz 3413 s 0 s 218 s 9874 s 0 s #2 0 MHz 3464 s 0 s 240 s 9806 s 0 s #3 0 MHz 3640 s 0 s 240 s 9622 s 0 s #4 0 MHz 3279 s 0 s 223 s 10001 s 0 s Memory: 15.606502532958984 GB (13311.71875 MB free) Uptime: 1356.74 sec Load Avg: 1.02 1.04 0.87 WORD_SIZE: 64 LLVM: libLLVM-17.0.6 (ORCJIT, znver3) Threads: 1 default, 0 interactive, 1 GC (on 4 virtual cores) ``` --- # Target result # Benchmark Report for */home/runner/work/QuantumClifford.jl/QuantumClifford.jl* ## Job Properties * Time of benchmark: 26 May 2024 - 19:39 * Package commit: 44997c * Julia commit: 768921 * Julia command flags: None * Environment variables: None ## Results Below is a table of this job's results, obtained by running the benchmarks. The values listed in the `ID` column have the structure `[parent_group, child_group, ..., key]`, and can be used to index into the BaseBenchmarks suite to retrieve the corresponding benchmarks. The percentages accompanying time and memory values in the below table are noise tolerances. The "true" time/memory value for a given benchmark is expected to fall within this percentage of the reported value. An empty cell means that the value was zero. | ID | time | GC time | memory | allocations | |--------------------------------------------------------------------|----------------:|----------:|----------------:|------------:| | `["circuitsim", "compactification", "compact"]` | 7.012 ms (5%) | | | | | `["circuitsim", "compactification", "no_compact"]` | 7.172 ms (5%) | | 281.25 KiB (1%) | 6000 | | `["circuitsim", "mctrajectories", "q1001_r1"]` | 15.555 ms (5%) | | 500.77 KiB (1%) | 18019 | | `["circuitsim", "mctrajectories", "q101_r1"]` | 173.624 μs (5%) | | 50.53 KiB (1%) | 1818 | | `["circuitsim", "mctrajectories_sumtype", "q1001_r1"]` | 13.248 ms (5%) | | 496 bytes (1%) | 9 | | `["circuitsim", "mctrajectories_sumtype", "q101_r1"]` | 120.345 μs (5%) | | 256 bytes (1%) | 8 | | `["circuitsim", "mctrajectories_union", "q1001_r1"]` | 13.528 ms (5%) | | 496 bytes (1%) | 9 | | `["circuitsim", "mctrajectories_union", "q101_r1"]` | 119.012 μs (5%) | | 256 bytes (1%) | 8 | | `["circuitsim", "pftrajectories", "q1001_r1"]` | 59.782 μs (5%) | | 93.80 KiB (1%) | 2001 | | `["circuitsim", "pftrajectories", "q1001_r100"]` | 180.025 μs (5%) | | 93.80 KiB (1%) | 2001 | | `["circuitsim", "pftrajectories", "q1001_r10000"]` | 1.099 ms (5%) | | 93.80 KiB (1%) | 2001 | | `["circuitsim", "pftrajectories", "q101_r1"]` | 5.991 μs (5%) | | 9.42 KiB (1%) | 201 | | `["circuitsim", "pftrajectories_sumtype", "q1001_r1"]` | 42.479 μs (5%) | | | | | `["circuitsim", "pftrajectories_sumtype", "q1001_r100"]` | 152.645 μs (5%) | | | | | `["circuitsim", "pftrajectories_sumtype", "q1001_r10000"]` | 1.080 ms (5%) | | | | | `["circuitsim", "pftrajectories_sumtype", "q1001_r10000_fastrow"]` | 5.833 ms (5%) | | | | | `["circuitsim", "pftrajectories_sumtype", "q101_r1"]` | 4.257 μs (5%) | | | | | `["circuitsim", "pftrajectories_union", "q1001_r1"]` | 22.311 μs (5%) | | 96 bytes (1%) | 2 | | `["circuitsim", "pftrajectories_union", "q1001_r100"]` | 134.881 μs (5%) | | 96 bytes (1%) | 2 | | `["circuitsim", "pftrajectories_union", "q1001_r10000"]` | 1.056 ms (5%) | | 96 bytes (1%) | 2 | | `["circuitsim", "pftrajectories_union", "q101_r1"]` | 2.304 μs (5%) | | 96 bytes (1%) | 2 | | `["clifford", "dense", "cnot250_on_dense500_destab"]` | 11.361 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "cnot250_on_dense500_stab"]` | 5.796 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "cnot250_on_diag500_destab"]` | 1.119 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "cnot250_on_diag500_stab"]` | 558.813 μs (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "cnot_on_dense500_destab"]` | 49.012 μs (5%) | | 368 bytes (1%) | 10 | | `["clifford", "dense", "cnot_on_dense500_stab"]` | 22.683 μs (5%) | | 368 bytes (1%) | 10 | | `["clifford", "dense", "cnot_on_diag500_destab"]` | 25.598 μs (5%) | | 368 bytes (1%) | 10 | | `["clifford", "dense", "cnot_on_diag500_stab"]` | 12.813 μs (5%) | | 368 bytes (1%) | 10 | | `["clifford", "dense", "dense500_on_dense500_destab"]` | 11.371 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "dense500_on_dense500_stab"]` | 5.788 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "dense500_on_diag500_destab"]` | 968.628 μs (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "dense500_on_diag500_stab"]` | 558.782 μs (5%) | | 512 bytes (1%) | 8 | | `["clifford", "symbolic", "cnot250_on_dense500_destab"]` | 1.476 ms (5%) | | | | | `["clifford", "symbolic", "cnot250_on_dense500_stab"]` | 701.129 μs (5%) | | | | | `["clifford", "symbolic", "cnot250_on_diag500_destab"]` | 1.199 ms (5%) | | | | | `["clifford", "symbolic", "cnot250_on_diag500_stab"]` | 583.719 μs (5%) | | | | | `["clifford", "symbolic", "cnot_on_dense500_destab"]` | 4.839 μs (5%) | | | | | `["clifford", "symbolic", "cnot_on_dense500_stab"]` | 2.374 μs (5%) | | | | | `["clifford", "symbolic", "cnot_on_diag500_destab"]` | 4.818 μs (5%) | | | | | `["clifford", "symbolic", "cnot_on_diag500_stab"]` | 2.374 μs (5%) | | | | | `["ecc", "evaluate_decoder", "shor_bp_comm"]` | 1.849 ms (5%) | | 1.77 MiB (1%) | 42597 | | `["ecc", "evaluate_decoder", "shor_bp_naivesyn"]` | 4.356 ms (5%) | | 3.63 MiB (1%) | 82041 | | `["ecc", "evaluate_decoder", "shor_bp_shorsyn"]` | 4.789 ms (5%) | | 3.72 MiB (1%) | 83025 | | `["ecc", "evaluate_decoder", "shor_pybp_comm"]` | 24.714 ms (5%) | | 3.97 MiB (1%) | 116084 | | `["ecc", "evaluate_decoder", "shor_pybp_naivesyn"]` | 51.259 ms (5%) | | 7.99 MiB (1%) | 228133 | | `["ecc", "evaluate_decoder", "shor_pybp_shorsyn"]` | 51.995 ms (5%) | | 8.07 MiB (1%) | 229131 | | `["ecc", "evaluate_decoder", "shor_table_comm"]` | 264.774 μs (5%) | | 241.48 KiB (1%) | 4595 | | `["ecc", "evaluate_decoder", "shor_table_naivesyn"]` | 1.088 ms (5%) | | 350.88 KiB (1%) | 5155 | | `["ecc", "evaluate_decoder", "shor_table_shorsyn"]` | 1.513 ms (5%) | | 440.22 KiB (1%) | 6153 | | `["ecc", "evaluate_decoder", "toric8_bp_comm"]` | 653.139 ms (5%) | 15.622 ms | 163.32 MiB (1%) | 980306 | | `["ecc", "evaluate_decoder", "toric8_bp_naivesyn"]` | 1.399 s (5%) | 34.098 ms | 342.42 MiB (1%) | 2086427 | | `["ecc", "evaluate_decoder", "toric8_bp_shorsyn"]` | 1.444 s (5%) | 31.730 ms | 358.05 MiB (1%) | 2197735 | | `["ecc", "evaluate_decoder", "toric8_pybp_comm"]` | 385.562 ms (5%) | | 7.31 MiB (1%) | 135575 | | `["ecc", "evaluate_decoder", "toric8_pybp_naivesyn"]` | 804.381 ms (5%) | | 16.90 MiB (1%) | 317606 | | `["ecc", "evaluate_decoder", "toric8_pybp_shorsyn"]` | 811.531 ms (5%) | | 19.38 MiB (1%) | 351522 | | `["ecc", "evaluate_decoder", "toric8_pymatch_comm"]` | 4.232 ms (5%) | | 1.95 MiB (1%) | 23180 | | `["ecc", "evaluate_decoder", "toric8_pymatch_naivesyn"]` | 16.748 ms (5%) | | 6.03 MiB (1%) | 92823 | | `["ecc", "evaluate_decoder", "toric8_pymatch_shorsyn"]` | 25.985 ms (5%) | | 8.50 MiB (1%) | 126739 | | `["ecc", "evaluate_decoder", "toric8_table_comm"]` | 2.706 ms (5%) | | 1.64 MiB (1%) | 23086 | | `["ecc", "evaluate_decoder", "toric8_table_naivesyn"]` | 14.604 ms (5%) | | 5.38 MiB (1%) | 92628 | | `["ecc", "evaluate_decoder", "toric8_table_shorsyn"]` | 23.833 ms (5%) | | 7.86 MiB (1%) | 126544 | | `["pauli", "mul", "100"]` | 14.204 ns (5%) | | | | | `["pauli", "mul", "1000"]` | 18.067 ns (5%) | | | | | `["pauli", "mul", "100000"]` | 711.634 ns (5%) | | | | | `["pauli", "mul", "20000000"]` | 192.680 μs (5%) | | | | | `["stabilizer", "canon", "cano500"]` | 3.021 ms (5%) | | | | | `["stabilizer", "canon", "diag_cano500"]` | 636.527 μs (5%) | | | | | `["stabilizer", "canon", "diag_gott500"]` | 4.215 ms (5%) | | 5.19 MiB (1%) | 34521 | | `["stabilizer", "canon", "diag_rref500"]` | 655.063 μs (5%) | | | | | `["stabilizer", "canon", "gott500"]` | 6.647 ms (5%) | | 5.19 MiB (1%) | 34531 | | `["stabilizer", "canon", "md_cano500"]` | 1.540 ms (5%) | | | | | `["stabilizer", "canon", "md_rref500"]` | 1.590 ms (5%) | | | | | `["stabilizer", "canon", "rref500"]` | 3.116 ms (5%) | | | | | `["stabilizer", "project", "destabilizer"]` | 17.773 μs (5%) | | 288 bytes (1%) | 5 | | `["stabilizer", "project", "stabilizer"]` | 8.846 μs (5%) | | 80 bytes (1%) | 2 | | `["stabilizer", "tensor", "diag_pow5_20"]` | 1.388 ms (5%) | | 23.97 MiB (1%) | 34 | | `["stabilizer", "tensor", "pow5_20"]` | 2.443 μs (5%) | | 6.44 KiB (1%) | 31 | | `["stabilizer", "trace", "destabilizer"]` | 31.129 μs (5%) | | 80 bytes (1%) | 2 | | `["stabilizer", "trace", "stabilizer"]` | 24.726 μs (5%) | | 112 bytes (1%) | 3 | ## Benchmark Group List Here's a list of all the benchmark groups executed by this job: - `["circuitsim", "compactification"]` - `["circuitsim", "mctrajectories"]` - `["circuitsim", "mctrajectories_sumtype"]` - `["circuitsim", "mctrajectories_union"]` - `["circuitsim", "pftrajectories"]` - `["circuitsim", "pftrajectories_sumtype"]` - `["circuitsim", "pftrajectories_union"]` - `["clifford", "dense"]` - `["clifford", "symbolic"]` - `["ecc", "evaluate_decoder"]` - `["pauli", "mul"]` - `["stabilizer", "canon"]` - `["stabilizer", "project"]` - `["stabilizer", "tensor"]` - `["stabilizer", "trace"]` ## Julia versioninfo ``` Julia Version 1.12.0-DEV.605 Commit 768921e6f73 (2024-05-26 17:30 UTC) Build Info: Official https://julialang.org/ release Platform Info: OS: Linux (x86_64-linux-gnu) Ubuntu 22.04.4 LTS uname: Linux 6.5.0-1021-azure #22~22.04.1-Ubuntu SMP Tue Apr 30 16:08:18 UTC 2024 x86_64 x86_64 CPU: AMD EPYC 7763 64-Core Processor: speed user nice sys idle irq #1 0 MHz 2252 s 0 s 175 s 6653 s 0 s #2 0 MHz 2539 s 0 s 181 s 6363 s 0 s #3 0 MHz 2699 s 0 s 191 s 6186 s 0 s #4 0 MHz 1855 s 0 s 161 s 7061 s 0 s Memory: 15.606502532958984 GB (13348.2421875 MB free) Uptime: 913.39 sec Load Avg: 1.01 1.03 0.74 WORD_SIZE: 64 LLVM: libLLVM-17.0.6 (ORCJIT, znver3) Threads: 1 default, 0 interactive, 1 GC (on 4 virtual cores) ``` --- # Baseline result # Benchmark Report for */home/runner/work/QuantumClifford.jl/QuantumClifford.jl* ## Job Properties * Time of benchmark: 26 May 2024 - 19:47 * Package commit: 44f618 * Julia commit: 768921 * Julia command flags: None * Environment variables: None ## Results Below is a table of this job's results, obtained by running the benchmarks. The values listed in the `ID` column have the structure `[parent_group, child_group, ..., key]`, and can be used to index into the BaseBenchmarks suite to retrieve the corresponding benchmarks. The percentages accompanying time and memory values in the below table are noise tolerances. The "true" time/memory value for a given benchmark is expected to fall within this percentage of the reported value. An empty cell means that the value was zero. | ID | time | GC time | memory | allocations | |--------------------------------------------------------------------|----------------:|----------:|----------------:|------------:| | `["circuitsim", "compactification", "compact"]` | 7.239 ms (5%) | | | | | `["circuitsim", "compactification", "no_compact"]` | 7.423 ms (5%) | | 281.25 KiB (1%) | 6000 | | `["circuitsim", "mctrajectories", "q1001_r1"]` | 15.210 ms (5%) | | 500.77 KiB (1%) | 18019 | | `["circuitsim", "mctrajectories", "q101_r1"]` | 171.480 μs (5%) | | 50.53 KiB (1%) | 1818 | | `["circuitsim", "mctrajectories_sumtype", "q1001_r1"]` | 13.480 ms (5%) | | 496 bytes (1%) | 9 | | `["circuitsim", "mctrajectories_sumtype", "q101_r1"]` | 120.334 μs (5%) | | 256 bytes (1%) | 8 | | `["circuitsim", "mctrajectories_union", "q1001_r1"]` | 14.015 ms (5%) | | 496 bytes (1%) | 9 | | `["circuitsim", "mctrajectories_union", "q101_r1"]` | 119.022 μs (5%) | | 256 bytes (1%) | 8 | | `["circuitsim", "pftrajectories", "q1001_r1"]` | 61.405 μs (5%) | | 93.80 KiB (1%) | 2001 | | `["circuitsim", "pftrajectories", "q1001_r100"]` | 182.912 μs (5%) | | 93.80 KiB (1%) | 2001 | | `["circuitsim", "pftrajectories", "q1001_r10000"]` | 1.147 ms (5%) | | 93.80 KiB (1%) | 2001 | | `["circuitsim", "pftrajectories", "q101_r1"]` | 6.171 μs (5%) | | 9.42 KiB (1%) | 201 | | `["circuitsim", "pftrajectories_sumtype", "q1001_r1"]` | 42.549 μs (5%) | | | | | `["circuitsim", "pftrajectories_sumtype", "q1001_r100"]` | 153.807 μs (5%) | | | | | `["circuitsim", "pftrajectories_sumtype", "q1001_r10000"]` | 1.126 ms (5%) | | | | | `["circuitsim", "pftrajectories_sumtype", "q1001_r10000_fastrow"]` | 5.820 ms (5%) | | | | | `["circuitsim", "pftrajectories_sumtype", "q101_r1"]` | 4.288 μs (5%) | | | | | `["circuitsim", "pftrajectories_union", "q1001_r1"]` | 22.611 μs (5%) | | 96 bytes (1%) | 2 | | `["circuitsim", "pftrajectories_union", "q1001_r100"]` | 136.830 μs (5%) | | 96 bytes (1%) | 2 | | `["circuitsim", "pftrajectories_union", "q1001_r10000"]` | 1.099 ms (5%) | | 96 bytes (1%) | 2 | | `["circuitsim", "pftrajectories_union", "q101_r1"]` | 2.335 μs (5%) | | 96 bytes (1%) | 2 | | `["clifford", "dense", "cnot250_on_dense500_destab"]` | 11.437 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "cnot250_on_dense500_stab"]` | 5.801 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "cnot250_on_diag500_destab"]` | 1.119 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "cnot250_on_diag500_stab"]` | 559.323 μs (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "cnot_on_dense500_destab"]` | 48.891 μs (5%) | | 368 bytes (1%) | 10 | | `["clifford", "dense", "cnot_on_dense500_stab"]` | 22.642 μs (5%) | | 368 bytes (1%) | 10 | | `["clifford", "dense", "cnot_on_diag500_destab"]` | 25.538 μs (5%) | | 368 bytes (1%) | 10 | | `["clifford", "dense", "cnot_on_diag500_stab"]` | 12.744 μs (5%) | | 368 bytes (1%) | 10 | | `["clifford", "dense", "dense500_on_dense500_destab"]` | 11.474 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "dense500_on_dense500_stab"]` | 5.830 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "dense500_on_diag500_destab"]` | 966.722 μs (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "dense500_on_diag500_stab"]` | 559.353 μs (5%) | | 512 bytes (1%) | 8 | | `["clifford", "symbolic", "cnot250_on_dense500_destab"]` | 1.480 ms (5%) | | | | | `["clifford", "symbolic", "cnot250_on_dense500_stab"]` | 696.418 μs (5%) | | | | | `["clifford", "symbolic", "cnot250_on_diag500_destab"]` | 1.199 ms (5%) | | | | | `["clifford", "symbolic", "cnot250_on_diag500_stab"]` | 579.822 μs (5%) | | | | | `["clifford", "symbolic", "cnot_on_dense500_destab"]` | 4.839 μs (5%) | | | | | `["clifford", "symbolic", "cnot_on_dense500_stab"]` | 2.354 μs (5%) | | | | | `["clifford", "symbolic", "cnot_on_diag500_destab"]` | 4.809 μs (5%) | | | | | `["clifford", "symbolic", "cnot_on_diag500_stab"]` | 2.364 μs (5%) | | | | | `["ecc", "evaluate_decoder", "shor_bp_comm"]` | 1.835 ms (5%) | | 1.77 MiB (1%) | 42611 | | `["ecc", "evaluate_decoder", "shor_bp_naivesyn"]` | 4.371 ms (5%) | | 3.64 MiB (1%) | 82349 | | `["ecc", "evaluate_decoder", "shor_bp_shorsyn"]` | 5.148 ms (5%) | | 3.81 MiB (1%) | 85069 | | `["ecc", "evaluate_decoder", "shor_pybp_comm"]` | 24.784 ms (5%) | | 3.97 MiB (1%) | 116084 | | `["ecc", "evaluate_decoder", "shor_pybp_naivesyn"]` | 50.930 ms (5%) | | 7.99 MiB (1%) | 228133 | | `["ecc", "evaluate_decoder", "shor_pybp_shorsyn"]` | 51.073 ms (5%) | | 8.07 MiB (1%) | 229131 | | `["ecc", "evaluate_decoder", "shor_table_comm"]` | 257.640 μs (5%) | | 241.48 KiB (1%) | 4595 | | `["ecc", "evaluate_decoder", "shor_table_naivesyn"]` | 1.095 ms (5%) | | 350.88 KiB (1%) | 5155 | | `["ecc", "evaluate_decoder", "shor_table_shorsyn"]` | 1.520 ms (5%) | | 440.22 KiB (1%) | 6153 | | `["ecc", "evaluate_decoder", "toric8_bp_comm"]` | 702.835 ms (5%) | 16.875 ms | 175.74 MiB (1%) | 1053330 | | `["ecc", "evaluate_decoder", "toric8_bp_naivesyn"]` | 1.375 s (5%) | 29.111 ms | 348.59 MiB (1%) | 2122708 | | `["ecc", "evaluate_decoder", "toric8_bp_shorsyn"]` | 1.439 s (5%) | 31.645 ms | 364.55 MiB (1%) | 2235983 | | `["ecc", "evaluate_decoder", "toric8_pybp_comm"]` | 396.881 ms (5%) | | 7.31 MiB (1%) | 135575 | | `["ecc", "evaluate_decoder", "toric8_pybp_naivesyn"]` | 806.617 ms (5%) | | 16.90 MiB (1%) | 317606 | | `["ecc", "evaluate_decoder", "toric8_pybp_shorsyn"]` | 822.404 ms (5%) | | 19.38 MiB (1%) | 351522 | | `["ecc", "evaluate_decoder", "toric8_pymatch_comm"]` | 4.225 ms (5%) | | 1.95 MiB (1%) | 23180 | | `["ecc", "evaluate_decoder", "toric8_pymatch_naivesyn"]` | 17.068 ms (5%) | | 6.03 MiB (1%) | 92823 | | `["ecc", "evaluate_decoder", "toric8_pymatch_shorsyn"]` | 26.319 ms (5%) | | 8.50 MiB (1%) | 126739 | | `["ecc", "evaluate_decoder", "toric8_table_comm"]` | 2.701 ms (5%) | | 1.64 MiB (1%) | 23086 | | `["ecc", "evaluate_decoder", "toric8_table_naivesyn"]` | 14.864 ms (5%) | | 5.38 MiB (1%) | 92628 | | `["ecc", "evaluate_decoder", "toric8_table_shorsyn"]` | 24.096 ms (5%) | | 7.86 MiB (1%) | 126544 | | `["pauli", "mul", "100"]` | 14.505 ns (5%) | | | | | `["pauli", "mul", "1000"]` | 18.820 ns (5%) | | | | | `["pauli", "mul", "100000"]` | 734.351 ns (5%) | | | | | `["pauli", "mul", "20000000"]` | 181.809 μs (5%) | | | | | `["stabilizer", "canon", "cano500"]` | 3.090 ms (5%) | | | | | `["stabilizer", "canon", "diag_cano500"]` | 636.648 μs (5%) | | | | | `["stabilizer", "canon", "diag_gott500"]` | 4.131 ms (5%) | | 5.19 MiB (1%) | 34521 | | `["stabilizer", "canon", "diag_rref500"]` | 732.517 μs (5%) | | | | | `["stabilizer", "canon", "gott500"]` | 6.591 ms (5%) | | 5.19 MiB (1%) | 34531 | | `["stabilizer", "canon", "md_cano500"]` | 1.553 ms (5%) | | | | | `["stabilizer", "canon", "md_rref500"]` | 1.566 ms (5%) | | | | | `["stabilizer", "canon", "rref500"]` | 3.138 ms (5%) | | | | | `["stabilizer", "project", "destabilizer"]` | 18.254 μs (5%) | | 288 bytes (1%) | 5 | | `["stabilizer", "project", "stabilizer"]` | 8.596 μs (5%) | | 80 bytes (1%) | 2 | | `["stabilizer", "tensor", "diag_pow5_20"]` | 1.125 ms (5%) | | 23.97 MiB (1%) | 34 | | `["stabilizer", "tensor", "pow5_20"]` | 2.467 μs (5%) | | 6.44 KiB (1%) | 31 | | `["stabilizer", "trace", "destabilizer"]` | 31.268 μs (5%) | | 80 bytes (1%) | 2 | | `["stabilizer", "trace", "stabilizer"]` | 24.555 μs (5%) | | 112 bytes (1%) | 3 | ## Benchmark Group List Here's a list of all the benchmark groups executed by this job: - `["circuitsim", "compactification"]` - `["circuitsim", "mctrajectories"]` - `["circuitsim", "mctrajectories_sumtype"]` - `["circuitsim", "mctrajectories_union"]` - `["circuitsim", "pftrajectories"]` - `["circuitsim", "pftrajectories_sumtype"]` - `["circuitsim", "pftrajectories_union"]` - `["clifford", "dense"]` - `["clifford", "symbolic"]` - `["ecc", "evaluate_decoder"]` - `["pauli", "mul"]` - `["stabilizer", "canon"]` - `["stabilizer", "project"]` - `["stabilizer", "tensor"]` - `["stabilizer", "trace"]` ## Julia versioninfo ``` Julia Version 1.12.0-DEV.605 Commit 768921e6f73 (2024-05-26 17:30 UTC) Build Info: Official https://julialang.org/ release Platform Info: OS: Linux (x86_64-linux-gnu) Ubuntu 22.04.4 LTS uname: Linux 6.5.0-1021-azure #22~22.04.1-Ubuntu SMP Tue Apr 30 16:08:18 UTC 2024 x86_64 x86_64 CPU: AMD EPYC 7763 64-Core Processor: speed user nice sys idle irq #1 0 MHz 3413 s 0 s 218 s 9874 s 0 s #2 0 MHz 3464 s 0 s 240 s 9806 s 0 s #3 0 MHz 3640 s 0 s 240 s 9622 s 0 s #4 0 MHz 3279 s 0 s 223 s 10001 s 0 s Memory: 15.606502532958984 GB (13311.71875 MB free) Uptime: 1356.74 sec Load Avg: 1.02 1.04 0.87 WORD_SIZE: 64 LLVM: libLLVM-17.0.6 (ORCJIT, znver3) Threads: 1 default, 0 interactive, 1 GC (on 4 virtual cores) ``` --- # Runtime information | Runtime Info | | |:--|:--| | BLAS #threads | 2 | | `BLAS.vendor()` | `lbt` | | `Sys.CPU_THREADS` | 4 | `lscpu` output: Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Address sizes: 48 bits physical, 48 bits virtual Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Vendor ID: AuthenticAMD Model name: AMD EPYC 7763 64-Core Processor CPU family: 25 Model: 1 Thread(s) per core: 2 Core(s) per socket: 2 Socket(s): 1 Stepping: 1 BogoMIPS: 4890.85 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl tsc_reliable nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy svm cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw topoext invpcid_single vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves clzero xsaveerptr rdpru arat npt nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold v_vmsave_vmload umip vaes vpclmulqdq rdpid fsrm Virtualization: AMD-V Hypervisor vendor: Microsoft Virtualization type: full L1d cache: 64 KiB (2 instances) L1i cache: 64 KiB (2 instances) L2 cache: 1 MiB (2 instances) L3 cache: 32 MiB (1 instance) NUMA node(s): 1 NUMA node0 CPU(s): 0-3 Vulnerability Gather data sampling: Not affected Vulnerability Itlb multihit: Not affected Vulnerability L1tf: Not affected Vulnerability Mds: Not affected Vulnerability Meltdown: Not affected Vulnerability Mmio stale data: Not affected Vulnerability Retbleed: Not affected Vulnerability Spec rstack overflow: Vulnerable: Safe RET, no microcode Vulnerability Spec store bypass: Vulnerable Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization Vulnerability Spectre v2: Mitigation; Retpolines; STIBP disabled; RSB filling; PBRSB-eIBRS Not affected; BHI Not affected Vulnerability Srbds: Not affected Vulnerability Tsx async abort: Not affected | Cpu Property | Value | |:------------------ |:---------------------------------------------------------- | | Brand | AMD EPYC 7763 64-Core Processor | | Vendor | :AMD | | Architecture | :Unknown | | Model | Family: 0xaf, Model: 0x01, Stepping: 0x01, Type: 0x00 | | Cores | 16 physical cores, 16 logical cores (on executing CPU) | | | No Hyperthreading hardware capability detected | | Clock Frequencies | Not supported by CPU | | Data Cache | Level 1:3 : (32, 512, 32768) kbytes | | | 64 byte cache line size | | Address Size | 48 bits virtual, 48 bits physical | | SIMD | 256 bit = 32 byte max. SIMD vector size | | Time Stamp Counter | TSC is accessible via `rdtsc` | | | TSC runs at constant rate (invariant from clock frequency) | | Perf. Monitoring | Performance Monitoring Counters (PMC) are not supported | | Hypervisor | Yes, Microsoft |
Benchmark Result # Judge result # Benchmark Report for */home/runner/work/QuantumClifford.jl/QuantumClifford.jl* ## Job Properties * Time of benchmarks: - Target: 27 May 2024 - 05:27 - Baseline: 27 May 2024 - 05:34 * Package commits: - Target: 9522c7 - Baseline: 44f618 * Julia commits: - Target: 768921 - Baseline: 768921 * Julia command flags: - Target: None - Baseline: None * Environment variables: - Target: None - Baseline: None ## Results A ratio greater than `1.0` denotes a possible regression (marked with :x:), while a ratio less than `1.0` denotes a possible improvement (marked with :white_check_mark:). Only significant results - results that indicate possible regressions or improvements - are shown below (thus, an empty table means that all benchmark results remained invariant between builds). | ID | time ratio | memory ratio | |--------------------------------------------------------------------|------------------------------|------------------------------| | `["clifford", "dense", "cnot_on_dense500_stab"]` | 1.05 (5%) :x: | 1.00 (1%) | | `["clifford", "dense", "dense500_on_diag500_destab"]` | 1.15 (5%) :x: | 1.00 (1%) | | `["ecc", "evaluate_decoder", "shor_bp_shorsyn"]` | 0.93 (5%) :white_check_mark: | 0.98 (1%) :white_check_mark: | | `["ecc", "evaluate_decoder", "toric8_bp_comm"]` | 0.95 (5%) | 0.98 (1%) :white_check_mark: | | `["ecc", "evaluate_decoder", "toric8_bp_naivesyn"]` | 0.98 (5%) | 0.98 (1%) :white_check_mark: | | `["stabilizer", "project", "stabilizer"]` | 1.10 (5%) :x: | 1.00 (1%) | | `["stabilizer", "tensor", "diag_pow5_20"]` | 1.06 (5%) :x: | 1.00 (1%) | ## Benchmark Group List Here's a list of all the benchmark groups executed by this job: - `["circuitsim", "compactification"]` - `["circuitsim", "mctrajectories"]` - `["circuitsim", "mctrajectories_sumtype"]` - `["circuitsim", "mctrajectories_union"]` - `["circuitsim", "pftrajectories"]` - `["circuitsim", "pftrajectories_sumtype"]` - `["circuitsim", "pftrajectories_union"]` - `["clifford", "dense"]` - `["clifford", "symbolic"]` - `["ecc", "evaluate_decoder"]` - `["pauli", "mul"]` - `["stabilizer", "canon"]` - `["stabilizer", "project"]` - `["stabilizer", "tensor"]` - `["stabilizer", "trace"]` ## Julia versioninfo ### Target ``` Julia Version 1.12.0-DEV.605 Commit 768921e6f73 (2024-05-26 17:30 UTC) Build Info: Official https://julialang.org/ release Platform Info: OS: Linux (x86_64-linux-gnu) Ubuntu 22.04.4 LTS uname: Linux 6.5.0-1021-azure #22~22.04.1-Ubuntu SMP Tue Apr 30 16:08:18 UTC 2024 x86_64 x86_64 CPU: AMD EPYC 7763 64-Core Processor: speed user nice sys idle irq #1 0 MHz 3050 s 0 s 150 s 5617 s 0 s #2 0 MHz 2540 s 0 s 145 s 6143 s 0 s #3 0 MHz 1825 s 0 s 176 s 6822 s 0 s #4 0 MHz 1804 s 0 s 177 s 6851 s 0 s Memory: 15.606502532958984 GB (13319.3203125 MB free) Uptime: 886.66 sec Load Avg: 1.0 1.02 0.73 WORD_SIZE: 64 LLVM: libLLVM-17.0.6 (ORCJIT, znver3) Threads: 1 default, 0 interactive, 1 GC (on 4 virtual cores) ``` ### Baseline ``` Julia Version 1.12.0-DEV.605 Commit 768921e6f73 (2024-05-26 17:30 UTC) Build Info: Official https://julialang.org/ release Platform Info: OS: Linux (x86_64-linux-gnu) Ubuntu 22.04.4 LTS uname: Linux 6.5.0-1021-azure #22~22.04.1-Ubuntu SMP Tue Apr 30 16:08:18 UTC 2024 x86_64 x86_64 CPU: AMD EPYC 7763 64-Core Processor: speed user nice sys idle irq #1 0 MHz 4052 s 0 s 193 s 8952 s 0 s #2 0 MHz 2903 s 0 s 185 s 10119 s 0 s #3 0 MHz 3325 s 0 s 228 s 9652 s 0 s #4 0 MHz 3342 s 0 s 223 s 9650 s 0 s Memory: 15.606502532958984 GB (13305.24609375 MB free) Uptime: 1325.47 sec Load Avg: 1.0 1.02 0.87 WORD_SIZE: 64 LLVM: libLLVM-17.0.6 (ORCJIT, znver3) Threads: 1 default, 0 interactive, 1 GC (on 4 virtual cores) ``` --- # Target result # Benchmark Report for */home/runner/work/QuantumClifford.jl/QuantumClifford.jl* ## Job Properties * Time of benchmark: 27 May 2024 - 5:27 * Package commit: 9522c7 * Julia commit: 768921 * Julia command flags: None * Environment variables: None ## Results Below is a table of this job's results, obtained by running the benchmarks. The values listed in the `ID` column have the structure `[parent_group, child_group, ..., key]`, and can be used to index into the BaseBenchmarks suite to retrieve the corresponding benchmarks. The percentages accompanying time and memory values in the below table are noise tolerances. The "true" time/memory value for a given benchmark is expected to fall within this percentage of the reported value. An empty cell means that the value was zero. | ID | time | GC time | memory | allocations | |--------------------------------------------------------------------|----------------:|----------:|----------------:|------------:| | `["circuitsim", "compactification", "compact"]` | 7.252 ms (5%) | | | | | `["circuitsim", "compactification", "no_compact"]` | 7.396 ms (5%) | | 281.25 KiB (1%) | 6000 | | `["circuitsim", "mctrajectories", "q1001_r1"]` | 15.291 ms (5%) | | 500.77 KiB (1%) | 18019 | | `["circuitsim", "mctrajectories", "q101_r1"]` | 169.516 μs (5%) | | 50.53 KiB (1%) | 1818 | | `["circuitsim", "mctrajectories_sumtype", "q1001_r1"]` | 13.577 ms (5%) | | 496 bytes (1%) | 9 | | `["circuitsim", "mctrajectories_sumtype", "q101_r1"]` | 120.165 μs (5%) | | 256 bytes (1%) | 8 | | `["circuitsim", "mctrajectories_union", "q1001_r1"]` | 13.134 ms (5%) | | 496 bytes (1%) | 9 | | `["circuitsim", "mctrajectories_union", "q101_r1"]` | 119.002 μs (5%) | | 256 bytes (1%) | 8 | | `["circuitsim", "pftrajectories", "q1001_r1"]` | 63.559 μs (5%) | | 93.80 KiB (1%) | 2001 | | `["circuitsim", "pftrajectories", "q1001_r100"]` | 174.837 μs (5%) | | 93.80 KiB (1%) | 2001 | | `["circuitsim", "pftrajectories", "q1001_r10000"]` | 1.102 ms (5%) | | 93.80 KiB (1%) | 2001 | | `["circuitsim", "pftrajectories", "q101_r1"]` | 6.362 μs (5%) | | 9.42 KiB (1%) | 201 | | `["circuitsim", "pftrajectories_sumtype", "q1001_r1"]` | 42.930 μs (5%) | | | | | `["circuitsim", "pftrajectories_sumtype", "q1001_r100"]` | 151.934 μs (5%) | | | | | `["circuitsim", "pftrajectories_sumtype", "q1001_r10000"]` | 1.083 ms (5%) | | | | | `["circuitsim", "pftrajectories_sumtype", "q1001_r10000_fastrow"]` | 5.828 ms (5%) | | | | | `["circuitsim", "pftrajectories_sumtype", "q101_r1"]` | 4.348 μs (5%) | | | | | `["circuitsim", "pftrajectories_union", "q1001_r1"]` | 22.592 μs (5%) | | 96 bytes (1%) | 2 | | `["circuitsim", "pftrajectories_union", "q1001_r100"]` | 134.461 μs (5%) | | 96 bytes (1%) | 2 | | `["circuitsim", "pftrajectories_union", "q1001_r10000"]` | 1.055 ms (5%) | | 96 bytes (1%) | 2 | | `["circuitsim", "pftrajectories_union", "q101_r1"]` | 2.334 μs (5%) | | 96 bytes (1%) | 2 | | `["clifford", "dense", "cnot250_on_dense500_destab"]` | 11.421 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "cnot250_on_dense500_stab"]` | 5.709 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "cnot250_on_diag500_destab"]` | 1.119 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "cnot250_on_diag500_stab"]` | 560.055 μs (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "cnot_on_dense500_destab"]` | 49.612 μs (5%) | | 368 bytes (1%) | 10 | | `["clifford", "dense", "cnot_on_dense500_stab"]` | 24.005 μs (5%) | | 368 bytes (1%) | 10 | | `["clifford", "dense", "cnot_on_diag500_destab"]` | 25.639 μs (5%) | | 368 bytes (1%) | 10 | | `["clifford", "dense", "cnot_on_diag500_stab"]` | 13.345 μs (5%) | | 368 bytes (1%) | 10 | | `["clifford", "dense", "dense500_on_dense500_destab"]` | 11.422 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "dense500_on_dense500_stab"]` | 5.713 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "dense500_on_diag500_destab"]` | 1.118 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "dense500_on_diag500_stab"]` | 560.065 μs (5%) | | 512 bytes (1%) | 8 | | `["clifford", "symbolic", "cnot250_on_dense500_destab"]` | 1.476 ms (5%) | | | | | `["clifford", "symbolic", "cnot250_on_dense500_stab"]` | 701.560 μs (5%) | | | | | `["clifford", "symbolic", "cnot250_on_diag500_destab"]` | 1.201 ms (5%) | | | | | `["clifford", "symbolic", "cnot250_on_diag500_stab"]` | 584.181 μs (5%) | | | | | `["clifford", "symbolic", "cnot_on_dense500_destab"]` | 4.849 μs (5%) | | | | | `["clifford", "symbolic", "cnot_on_dense500_stab"]` | 2.354 μs (5%) | | | | | `["clifford", "symbolic", "cnot_on_diag500_destab"]` | 4.799 μs (5%) | | | | | `["clifford", "symbolic", "cnot_on_diag500_stab"]` | 2.365 μs (5%) | | | | | `["ecc", "evaluate_decoder", "shor_bp_comm"]` | 1.822 ms (5%) | | 1.77 MiB (1%) | 42653 | | `["ecc", "evaluate_decoder", "shor_bp_naivesyn"]` | 4.377 ms (5%) | | 3.64 MiB (1%) | 82265 | | `["ecc", "evaluate_decoder", "shor_bp_shorsyn"]` | 4.774 ms (5%) | | 3.71 MiB (1%) | 82983 | | `["ecc", "evaluate_decoder", "shor_pybp_comm"]` | 25.389 ms (5%) | | 3.97 MiB (1%) | 116084 | | `["ecc", "evaluate_decoder", "shor_pybp_naivesyn"]` | 51.347 ms (5%) | | 7.99 MiB (1%) | 228133 | | `["ecc", "evaluate_decoder", "shor_pybp_shorsyn"]` | 51.983 ms (5%) | | 8.07 MiB (1%) | 229131 | | `["ecc", "evaluate_decoder", "shor_table_comm"]` | 256.228 μs (5%) | | 241.48 KiB (1%) | 4595 | | `["ecc", "evaluate_decoder", "shor_table_naivesyn"]` | 1.103 ms (5%) | | 350.88 KiB (1%) | 5155 | | `["ecc", "evaluate_decoder", "shor_table_shorsyn"]` | 1.520 ms (5%) | | 440.22 KiB (1%) | 6153 | | `["ecc", "evaluate_decoder", "toric8_bp_comm"]` | 671.168 ms (5%) | 13.715 ms | 171.19 MiB (1%) | 1026590 | | `["ecc", "evaluate_decoder", "toric8_bp_naivesyn"]` | 1.373 s (5%) | 27.725 ms | 347.55 MiB (1%) | 2116583 | | `["ecc", "evaluate_decoder", "toric8_bp_shorsyn"]` | 1.381 s (5%) | 26.262 ms | 353.36 MiB (1%) | 2170120 | | `["ecc", "evaluate_decoder", "toric8_pybp_comm"]` | 395.124 ms (5%) | | 7.31 MiB (1%) | 135575 | | `["ecc", "evaluate_decoder", "toric8_pybp_naivesyn"]` | 816.908 ms (5%) | | 16.90 MiB (1%) | 317606 | | `["ecc", "evaluate_decoder", "toric8_pybp_shorsyn"]` | 837.840 ms (5%) | | 19.38 MiB (1%) | 351522 | | `["ecc", "evaluate_decoder", "toric8_pymatch_comm"]` | 4.207 ms (5%) | | 1.95 MiB (1%) | 23180 | | `["ecc", "evaluate_decoder", "toric8_pymatch_naivesyn"]` | 17.412 ms (5%) | | 6.03 MiB (1%) | 92823 | | `["ecc", "evaluate_decoder", "toric8_pymatch_shorsyn"]` | 26.400 ms (5%) | | 8.50 MiB (1%) | 126739 | | `["ecc", "evaluate_decoder", "toric8_table_comm"]` | 2.681 ms (5%) | | 1.64 MiB (1%) | 23086 | | `["ecc", "evaluate_decoder", "toric8_table_naivesyn"]` | 15.152 ms (5%) | | 5.38 MiB (1%) | 92628 | | `["ecc", "evaluate_decoder", "toric8_table_shorsyn"]` | 24.133 ms (5%) | | 7.86 MiB (1%) | 126544 | | `["pauli", "mul", "100"]` | 14.366 ns (5%) | | | | | `["pauli", "mul", "1000"]` | 18.208 ns (5%) | | | | | `["pauli", "mul", "100000"]` | 727.786 ns (5%) | | | | | `["pauli", "mul", "20000000"]` | 170.699 μs (5%) | | | | | `["stabilizer", "canon", "cano500"]` | 3.077 ms (5%) | | | | | `["stabilizer", "canon", "diag_cano500"]` | 604.378 μs (5%) | | | | | `["stabilizer", "canon", "diag_gott500"]` | 4.121 ms (5%) | | 5.19 MiB (1%) | 34521 | | `["stabilizer", "canon", "diag_rref500"]` | 655.564 μs (5%) | | | | | `["stabilizer", "canon", "gott500"]` | 6.590 ms (5%) | | 5.19 MiB (1%) | 34531 | | `["stabilizer", "canon", "md_cano500"]` | 1.568 ms (5%) | | | | | `["stabilizer", "canon", "md_rref500"]` | 1.564 ms (5%) | | | | | `["stabilizer", "canon", "rref500"]` | 3.149 ms (5%) | | | | | `["stabilizer", "project", "destabilizer"]` | 17.874 μs (5%) | | 288 bytes (1%) | 5 | | `["stabilizer", "project", "stabilizer"]` | 9.538 μs (5%) | | 80 bytes (1%) | 2 | | `["stabilizer", "tensor", "diag_pow5_20"]` | 1.248 ms (5%) | | 23.97 MiB (1%) | 34 | | `["stabilizer", "tensor", "pow5_20"]` | 2.433 μs (5%) | | 6.44 KiB (1%) | 31 | | `["stabilizer", "trace", "destabilizer"]` | 31.338 μs (5%) | | 80 bytes (1%) | 2 | | `["stabilizer", "trace", "stabilizer"]` | 24.255 μs (5%) | | 112 bytes (1%) | 3 | ## Benchmark Group List Here's a list of all the benchmark groups executed by this job: - `["circuitsim", "compactification"]` - `["circuitsim", "mctrajectories"]` - `["circuitsim", "mctrajectories_sumtype"]` - `["circuitsim", "mctrajectories_union"]` - `["circuitsim", "pftrajectories"]` - `["circuitsim", "pftrajectories_sumtype"]` - `["circuitsim", "pftrajectories_union"]` - `["clifford", "dense"]` - `["clifford", "symbolic"]` - `["ecc", "evaluate_decoder"]` - `["pauli", "mul"]` - `["stabilizer", "canon"]` - `["stabilizer", "project"]` - `["stabilizer", "tensor"]` - `["stabilizer", "trace"]` ## Julia versioninfo ``` Julia Version 1.12.0-DEV.605 Commit 768921e6f73 (2024-05-26 17:30 UTC) Build Info: Official https://julialang.org/ release Platform Info: OS: Linux (x86_64-linux-gnu) Ubuntu 22.04.4 LTS uname: Linux 6.5.0-1021-azure #22~22.04.1-Ubuntu SMP Tue Apr 30 16:08:18 UTC 2024 x86_64 x86_64 CPU: AMD EPYC 7763 64-Core Processor: speed user nice sys idle irq #1 0 MHz 3050 s 0 s 150 s 5617 s 0 s #2 0 MHz 2540 s 0 s 145 s 6143 s 0 s #3 0 MHz 1825 s 0 s 176 s 6822 s 0 s #4 0 MHz 1804 s 0 s 177 s 6851 s 0 s Memory: 15.606502532958984 GB (13319.3203125 MB free) Uptime: 886.66 sec Load Avg: 1.0 1.02 0.73 WORD_SIZE: 64 LLVM: libLLVM-17.0.6 (ORCJIT, znver3) Threads: 1 default, 0 interactive, 1 GC (on 4 virtual cores) ``` --- # Baseline result # Benchmark Report for */home/runner/work/QuantumClifford.jl/QuantumClifford.jl* ## Job Properties * Time of benchmark: 27 May 2024 - 5:34 * Package commit: 44f618 * Julia commit: 768921 * Julia command flags: None * Environment variables: None ## Results Below is a table of this job's results, obtained by running the benchmarks. The values listed in the `ID` column have the structure `[parent_group, child_group, ..., key]`, and can be used to index into the BaseBenchmarks suite to retrieve the corresponding benchmarks. The percentages accompanying time and memory values in the below table are noise tolerances. The "true" time/memory value for a given ben...*[Comment body truncated]*
Fe-r-oz commented 2 months ago

Improved Version:

mindmap
  root((Applications of Stabilizer Formalism))
    Quantum Error Correction
      Quantum Error Correcting Codes
      Fault-Tolerant Quantum Computing
    Measurement-Based Quantum Computation
      Cluster States
      Graph States
    Quantum Communication
      Quantum Cryptography
      Quantum Networking
    Entanglement Distillation
    Quantum Metrology
    Quantum Simulation
      Stabilizer Circuits
      Efficient Simulation of Quantum Systems
Fe-r-oz commented 2 months ago

Please copy it in Mermaid live editor if there are any rendering issues.

This version has not been pushed. I made small edit, e.g. adding sub graphs so that the background is highlighted. Looking forward to your comments, so I can push this edit then.

flowchart TD
    A["<code>Tableau Data Structure Selection</code>"]
    class A startEnd

    A --> B{"<code>Stabilizer state?</code>"}
    class A,B startEnd

    B -->|<code>Yes</code>| C{"<code>Pure state?</code>"}
    B -->|<code>No</code>| D{"<code>Pure state?</code>"}
    class B,C,D decision

    C -->|<code>Yes</code>| E["<code>Stabilizer</code>"]
    C -->|<code>No</code>| F["<code>MixedStabilizer</code>"]

    D -->|<code>Yes</code>| G["<code>Destabilizer</code>"]
    D -->|<code>No</code>| H["<code>MixedDestabilizer</code>"]

    subgraph DescA [<code></code>]
        E --> E_desc["<code>Handles pure stabilizer states. Efficient project operations.</code>"]
    end
    subgraph DescB [<code></code>]
        F --> F_desc["<code>Tracks mixed stabilizer state ranks. Projects non-stabilizer operations</code>"]
    end
    subgraph DescC [<code></code>]
        G --> G_desc["<code>Handles pure destabilizer states. Tracks destabilizer operators. Efficient project operations</code>"]
    end
     subgraph DescD [<code></code>]
        H --> H_desc["<code>Tracks destabilizers. Tracks logical operators. Efficient project operations</code>"]
    end
Fe-r-oz commented 3 weeks ago

There were conflicts which I resolved via rebase. This may have cause many emails. I had to git reset hard to a commit from 4 months ago and them merge the latest branch from master to resolve everything.