Skip to content

Add ring network interactive example#333

Closed
nenadilic84 wants to merge 1 commit intoQuantumSavory:masterfrom
nenadilic84:ring-network-example
Closed

Add ring network interactive example#333
nenadilic84 wants to merge 1 commit intoQuantumSavory:masterfrom
nenadilic84:ring-network-example

Conversation

@nenadilic84
Copy link
Copy Markdown

Summary

Adds a new interactive example demonstrating entanglement distribution over a ring (cyclic) topology, addressing issue #138.

  • Ring of N quantum nodes (default N=8) with Alice (node 1) and Bob (node N/2+1) on opposite sides
  • Bidirectional entanglement flow: Bell pairs can traverse clockwise or counterclockwise paths simultaneously
  • Uses standard ProtocolZoo protocols: EntanglerProt, SwapperProt, EntanglementTracker, EntanglementConsumer, CutoffProt
  • Direction-aware swap predicates adapted for ring geometry (ring_swap_predicates)
  • Interactive GLMakie visualization with performance plots (fidelity, throughput, delivery time histogram) and parameter sliders
  • WGLMakie variant for web-based viewing
  • Circular layout via NetworkLayout.jl Shell()

This is the first cyclic topology example — all existing examples use acyclic topologies (chains, grids, stars). Ring networks are common in metropolitan quantum network designs and demonstrate path redundancy.

Closes #138

Files

File Description
examples/ringnetwork/setup.jl Simulation configuration with prepare_simulation() and ring_swap_predicates()
examples/ringnetwork/1_interactive_visualization.jl GLMakie interactive example with sliders and plots
examples/ringnetwork/2_wglmakie_interactive.jl WGLMakie variant for web
examples/ringnetwork/README.md Documentation
test/test_examples.jl Added test entry for the ring network example
CHANGELOG.md Added entry under v0.6.0

Test plan

  • Verify plotting tests pass (Buildkite plotting-tests)
  • Verify example tests pass (Buildkite examples-with-plottingtests)
  • Manual check: run 1_interactive_visualization.jl and confirm ring layout, entanglement links, and performance plots update correctly

Implements an interactive example demonstrating entanglement distribution
over a ring (cyclic) topology, addressing issue QuantumSavory#138.

Features:
- Ring of N quantum nodes (default N=8) with Alice and Bob on opposite sides
- Bidirectional entanglement flow (clockwise and counterclockwise paths)
- Uses standard ProtocolZoo protocols: EntanglerProt, SwapperProt,
  EntanglementTracker, EntanglementConsumer, CutoffProt
- Direction-aware swap predicates adapted for ring geometry
- Interactive GLMakie visualization with performance plots and sliders
- WGLMakie variant for web-based viewing
- Circular layout via NetworkLayout.jl Shell()
@github-actions
Copy link
Copy Markdown
Contributor

Benchmark Results (Julia v1)

Time benchmarks
master ffb76b0... master / ffb76b0...
onchange/dual_messagebuffer_any/writers_2_waiters_1 1.21 ± 0.028 ms 1.13 ± 0.022 ms 1.07 ± 0.033
onchange/dual_messagebuffer_any/writers_4_waiters_1 2.39 ± 0.073 ms 2.22 ± 0.053 ms 1.08 ± 0.042
onchange/dual_messagebuffer_any/writers_4_waiters_4 1.96 ± 0.072 ms 1.92 ± 0.044 ms 1.02 ± 0.044
onchange/dual_messagebuffer_any/writers_8_waiters_4 3.88 ± 0.19 ms 3.83 ± 0.19 ms 1.01 ± 0.072
onchange/sharded_registers/pairs_1 0.62 ± 0.083 ms 0.554 ± 0.075 ms 1.12 ± 0.21
onchange/sharded_registers/pairs_16 9.82 ± 0.21 ms 8.79 ± 0.12 ms 1.12 ± 0.028
onchange/sharded_registers/pairs_32 20.1 ± 0.45 ms 18.1 ± 0.28 ms 1.11 ± 0.031
onchange/sharded_registers/pairs_4 2.39 ± 0.051 ms 2.14 ± 0.038 ms 1.11 ± 0.031
onchange/shared_messagebuffer_channel/writers_1_waiters_1 1.05 ± 0.025 ms 0.946 ± 0.023 ms 1.11 ± 0.037
onchange/shared_messagebuffer_channel/writers_1_waiters_8 0.675 ± 0.021 ms 0.627 ± 0.02 ms 1.08 ± 0.048
onchange/shared_messagebuffer_channel/writers_4_waiters_4 2.75 ± 0.38 ms 2.55 ± 0.33 ms 1.08 ± 0.2
onchange/shared_messagebuffer_channel/writers_8_waiters_1 8.38 ± 0.78 ms 7.59 ± 0.79 ms 1.1 ± 0.15
onchange/shared_messagebuffer_direct/writers_16_waiters_2 4.68 ± 0.9 ms 4.46 ± 0.75 ms 1.05 ± 0.27
onchange/shared_messagebuffer_direct/writers_1_waiters_1 0.382 ± 0.06 ms 0.36 ± 0.055 ms 1.06 ± 0.23
onchange/shared_messagebuffer_direct/writers_1_waiters_8 0.278 ± 0.058 ms 0.285 ± 0.056 ms 0.976 ± 0.28
onchange/shared_messagebuffer_direct/writers_2_waiters_16 0.501 ± 0.095 ms 0.497 ± 0.094 ms 1.01 ± 0.27
onchange/shared_messagebuffer_direct/writers_4_waiters_4 1.03 ± 0.2 ms 1 ± 0.18 ms 1.03 ± 0.27
onchange/shared_messagebuffer_direct/writers_8_waiters_1 2.76 ± 0.48 ms 2.51 ± 0.42 ms 1.1 ± 0.27
onchange/shared_register/writers_16_waiters_2 10.4 ± 1.4 ms 9.71 ± 1.2 ms 1.07 ± 0.2
onchange/shared_register/writers_1_waiters_1 0.622 ± 0.082 ms 0.565 ± 0.076 ms 1.1 ± 0.21
onchange/shared_register/writers_1_waiters_8 0.773 ± 0.11 ms 0.735 ± 0.11 ms 1.05 ± 0.22
onchange/shared_register/writers_2_waiters_16 1.99 ± 0.34 ms 1.91 ± 0.35 ms 1.04 ± 0.26
onchange/shared_register/writers_4_waiters_4 2.64 ± 0.37 ms 2.5 ± 0.33 ms 1.06 ± 0.2
onchange/shared_register/writers_8_waiters_1 4.92 ± 0.65 ms 4.43 ± 0.58 ms 1.11 ± 0.21
onchange/shared_regref/writers_1_waiters_1 0.632 ± 0.083 ms 0.57 ± 0.079 ms 1.11 ± 0.21
onchange/shared_regref/writers_1_waiters_8 0.771 ± 0.12 ms 0.741 ± 0.11 ms 1.04 ± 0.22
onchange/shared_regref/writers_4_waiters_4 2.67 ± 0.37 ms 2.52 ± 0.34 ms 1.06 ± 0.21
onchange/shared_regref/writers_8_waiters_1 4.89 ± 0.66 ms 4.43 ± 0.63 ms 1.11 ± 0.22
quantumstates/observable/quantumoptics 0.931 ± 0.26 μs 0.902 ± 0.23 μs 1.03 ± 0.39
querywait/messagebuffer_channel/writers_1_waiters_1 1.2 ± 0.03 ms 1.11 ± 0.024 ms 1.08 ± 0.036
querywait/messagebuffer_channel/writers_1_waiters_8 2.11 ± 0.17 ms 2.04 ± 0.15 ms 1.03 ± 0.11
querywait/messagebuffer_channel/writers_4_waiters_4 7.14 ± 0.94 ms 6.76 ± 0.79 ms 1.06 ± 0.19
querywait/messagebuffer_channel/writers_8_waiters_1 9.66 ± 0.83 ms 9.02 ± 0.79 ms 1.07 ± 0.13
querywait/messagebuffer_direct/writers_1_waiters_1 0.491 ± 0.067 ms 0.454 ± 0.061 ms 1.08 ± 0.21
querywait/messagebuffer_direct/writers_1_waiters_8 1.39 ± 0.23 ms 1.34 ± 0.22 ms 1.03 ± 0.24
querywait/messagebuffer_direct/writers_4_waiters_4 4.11 ± 0.74 ms 3.93 ± 0.62 ms 1.05 ± 0.25
querywait/messagebuffer_direct/writers_8_waiters_1 3.77 ± 0.55 ms 3.57 ± 0.48 ms 1.05 ± 0.21
querywait/register_query_wait/writers_1_waiters_1 0.547 ± 0.06 ms 0.581 ± 0.058 ms 0.942 ± 0.14
querywait/register_query_wait/writers_1_waiters_8 1.8 ± 0.25 ms 1.8 ± 0.24 ms 1 ± 0.19
querywait/register_query_wait/writers_4_waiters_4 4.6 ± 0.61 ms 4.59 ± 0.54 ms 1 ± 0.18
querywait/register_query_wait/writers_8_waiters_1 4.35 ± 0.48 ms 4.59 ± 0.45 ms 0.946 ± 0.14
querywait/register_querydelete_wait/writers_1_waiters_1 0.547 ± 0.06 ms 0.56 ± 0.068 ms 0.977 ± 0.16
querywait/register_querydelete_wait/writers_1_waiters_8 1.83 ± 0.25 ms 1.81 ± 0.25 ms 1.01 ± 0.2
querywait/register_querydelete_wait/writers_4_waiters_4 4.48 ± 0.55 ms 4.78 ± 0.52 ms 0.939 ± 0.15
querywait/register_querydelete_wait/writers_8_waiters_1 4.44 ± 0.45 ms 4.2 ± 0.47 ms 1.06 ± 0.16
register/creation_and_initialization/from_tests 0.263 ± 0.021 ms 0.31 ± 0.022 ms 0.847 ± 0.092
tagquery/messagebuffer/query 0.461 ± 0.011 μs 0.491 ± 0.01 μs 0.939 ± 0.029
tagquery/messagebuffer/query_high_arity 0.431 ± 0.01 μs 0.431 ± 0.01 μs 1 ± 0.033
tagquery/messagebuffer/query_high_arity_predicate 9.73 ± 1.9 μs 9.18 ± 1.9 μs 1.06 ± 0.3
tagquery/messagebuffer/query_miss 0.181 ± 0.01 μs 0.18 ± 0.01 μs 1.01 ± 0.079
tagquery/messagebuffer/query_tag_dispatch 1.61 ± 0.01 μs 1.57 ± 0.01 μs 1.03 ± 0.0091
tagquery/messagebuffer/querydelete 1.3 ± 0.16 μs 1.1 ± 0.17 μs 1.18 ± 0.23
tagquery/messagebuffer/querydelete_back 0.541 ± 0.14 μs 0.381 ± 0.1 μs 1.42 ± 0.53
tagquery/messagebuffer/querydelete_front 0.22 ± 0.041 μs 0.21 ± 0.04 μs 1.05 ± 0.28
tagquery/messagebuffer/querydelete_miss 0.53 ± 0.13 μs 0.371 ± 0.051 μs 1.43 ± 0.4
tagquery/misc/from_tests 9.58 ± 0.63 μs 9.37 ± 0.6 μs 1.02 ± 0.094
tagquery/register/query 4.74 ± 0.028 s 4.26 ± 0.05 s 1.11 ± 0.015
tagquery/register/query_assigned 1.47 ± 0.021 μs 0.922 ± 0.02 μs 1.6 ± 0.041
tagquery/register/query_exact_fifo 0.481 ± 0.02 μs 0.612 ± 0.019 μs 0.786 ± 0.041
tagquery/register/query_exact_filo 2.16 ± 0.03 μs 2.32 ± 0.03 μs 0.927 ± 0.018
tagquery/register/query_locked 0.782 ± 0.011 μs 0.541 ± 0.02 μs 1.45 ± 0.057
tagquery/register/query_miss 2.05 ± 0.02 μs 2.17 ± 0.02 μs 0.945 ± 0.013
tagquery/register/query_predicate 1.83 ± 0.03 μs 1.41 ± 0.021 μs 1.3 ± 0.029
tagquery/register/query_tag_dispatch 2.09 ± 0.03 μs 2.1 ± 0.02 μs 0.995 ± 0.017
tagquery/register/query_unassigned 1.89 ± 0.029 μs 1.35 ± 0.021 μs 1.4 ± 0.031
tagquery/register/queryall 4.54 ± 0.0011 s 4.17 ± 0.00066 s 1.09 ± 0.00032
tagquery/register/queryall_fifo 4.48 ± 1.8 μs 4.47 ± 1.8 μs 1 ± 0.58
tagquery/register/queryall_filo 2.83 ± 0.26 μs 2.77 ± 0.32 μs 1.02 ± 0.15
tagquery/register/queryall_tag_dispatch 2.18 ± 0.03 μs 2.17 ± 0.03 μs 1 ± 0.02
tagquery/register_high_arity/query_exact 0.34 ± 0.01 μs 0.35 ± 0.019 μs 0.971 ± 0.06
tagquery/register_high_arity/query_predicate 2.1 ± 0.06 μs 1.97 ± 0.021 μs 1.07 ± 0.032
tagquery/register_high_arity/queryall 0.391 ± 0.02 μs 0.39 ± 0.019 μs 1 ± 0.071
tagquery/register_mutating/querydelete_register 1.45 ± 0.1 μs 1.37 ± 0.1 μs 1.06 ± 0.11
tagquery/register_mutating/querydelete_regref_fifo 1.44 ± 0.1 μs 1.65 ± 0.12 μs 0.873 ± 0.088
tagquery/register_mutating/querydelete_regref_filo 1.8 ± 0.14 μs 1.5 ± 0.11 μs 1.2 ± 0.13
tagquery/register_mutating/untag_by_id 0.321 ± 0.029 μs 0.251 ± 0.031 μs 1.28 ± 0.2
tagquery/register_ref/query_fifo 0.561 ± 0.01 μs 0.631 ± 0.02 μs 0.889 ± 0.032
tagquery/register_ref/query_filo 0.751 ± 0.019 μs 0.651 ± 0.01 μs 1.15 ± 0.034
tagquery/register_ref/query_tag_dispatch 0.371 ± 0.011 μs 0.381 ± 0.011 μs 0.974 ± 0.04
tagquery/register_ref/queryall_fifo 0.932 ± 0.02 μs 0.871 ± 0.021 μs 1.07 ± 0.035
tagquery/register_ref/queryall_filo 0.741 ± 0.02 μs 0.732 ± 0.02 μs 1.01 ± 0.039
time_to_load 18 ± 0.019 s 17.8 ± 0.071 s 1.01 ± 0.0041
Memory benchmarks
master ffb76b0... master / ffb76b0...
onchange/dual_messagebuffer_any/writers_2_waiters_1 10.8 k allocs: 0.591 MB 10.8 k allocs: 0.591 MB 1
onchange/dual_messagebuffer_any/writers_4_waiters_1 21.4 k allocs: 1.18 MB 21.4 k allocs: 1.18 MB 1
onchange/dual_messagebuffer_any/writers_4_waiters_4 21.5 k allocs: 1.18 MB 21.5 k allocs: 1.18 MB 1
onchange/dual_messagebuffer_any/writers_8_waiters_4 0.045 M allocs: 2.39 MB 0.045 M allocs: 2.39 MB 1
onchange/sharded_registers/pairs_1 3.85 k allocs: 0.189 MB 3.85 k allocs: 0.189 MB 1
onchange/sharded_registers/pairs_16 0.0692 M allocs: 3.19 MB 0.0692 M allocs: 3.19 MB 1
onchange/sharded_registers/pairs_32 0.143 M allocs: 6.44 MB 0.143 M allocs: 6.44 MB 1
onchange/sharded_registers/pairs_4 15.6 k allocs: 0.768 MB 15.6 k allocs: 0.768 MB 1
onchange/shared_messagebuffer_channel/writers_1_waiters_1 4.67 k allocs: 0.241 MB 4.67 k allocs: 0.241 MB 1
onchange/shared_messagebuffer_channel/writers_1_waiters_8 4.68 k allocs: 0.241 MB 4.68 k allocs: 0.241 MB 1
onchange/shared_messagebuffer_channel/writers_4_waiters_4 18.4 k allocs: 0.949 MB 18.4 k allocs: 0.949 MB 1
onchange/shared_messagebuffer_channel/writers_8_waiters_1 0.0384 M allocs: 1.91 MB 0.0384 M allocs: 1.91 MB 1
onchange/shared_messagebuffer_direct/writers_16_waiters_2 0.0447 M allocs: 2.31 MB 0.0447 M allocs: 2.31 MB 1
onchange/shared_messagebuffer_direct/writers_1_waiters_1 2.66 k allocs: 0.142 MB 2.66 k allocs: 0.142 MB 1
onchange/shared_messagebuffer_direct/writers_1_waiters_8 2.67 k allocs: 0.145 MB 2.67 k allocs: 0.145 MB 1
onchange/shared_messagebuffer_direct/writers_2_waiters_16 5.33 k allocs: 0.283 MB 5.33 k allocs: 0.283 MB 1
onchange/shared_messagebuffer_direct/writers_4_waiters_4 10.6 k allocs: 0.569 MB 10.6 k allocs: 0.569 MB 1
onchange/shared_messagebuffer_direct/writers_8_waiters_1 21.2 k allocs: 1.13 MB 21.2 k allocs: 1.13 MB 1
onchange/shared_register/writers_16_waiters_2 0.0713 M allocs: 3.27 MB 0.0713 M allocs: 3.27 MB 1
onchange/shared_register/writers_1_waiters_1 3.85 k allocs: 0.189 MB 3.85 k allocs: 0.189 MB 1
onchange/shared_register/writers_1_waiters_8 5.46 k allocs: 0.264 MB 5.46 k allocs: 0.264 MB 1
onchange/shared_register/writers_2_waiters_16 14.6 k allocs: 0.839 MB 14.6 k allocs: 0.839 MB 1
onchange/shared_register/writers_4_waiters_4 18.1 k allocs: 0.878 MB 18.1 k allocs: 0.878 MB 1
onchange/shared_register/writers_8_waiters_1 0.0317 M allocs: 1.55 MB 0.0317 M allocs: 1.55 MB 1
onchange/shared_regref/writers_1_waiters_1 3.85 k allocs: 0.189 MB 3.85 k allocs: 0.189 MB 1
onchange/shared_regref/writers_1_waiters_8 5.46 k allocs: 0.264 MB 5.46 k allocs: 0.264 MB 1
onchange/shared_regref/writers_4_waiters_4 18.1 k allocs: 0.878 MB 18.1 k allocs: 0.878 MB 1
onchange/shared_regref/writers_8_waiters_1 0.0317 M allocs: 1.55 MB 0.0317 M allocs: 1.55 MB 1
quantumstates/observable/quantumoptics 22 allocs: 2.44 kB 22 allocs: 2.44 kB 1
querywait/messagebuffer_channel/writers_1_waiters_1 5.22 k allocs: 0.262 MB 5.22 k allocs: 0.262 MB 1
querywait/messagebuffer_channel/writers_1_waiters_8 14.1 k allocs: 0.753 MB 14.1 k allocs: 0.753 MB 1
querywait/messagebuffer_channel/writers_4_waiters_4 0.0424 M allocs: 2.17 MB 0.0433 M allocs: 2.21 MB 0.98
querywait/messagebuffer_channel/writers_8_waiters_1 0.0438 M allocs: 2.11 MB 0.0438 M allocs: 2.11 MB 1
querywait/messagebuffer_direct/writers_1_waiters_1 3.2 k allocs: 0.164 MB 3.2 k allocs: 0.164 MB 1
querywait/messagebuffer_direct/writers_1_waiters_8 12.1 k allocs: 0.657 MB 11.9 k allocs: 0.649 MB 1.01
querywait/messagebuffer_direct/writers_4_waiters_4 0.0338 M allocs: 1.79 MB 0.0344 M allocs: 1.82 MB 0.986
querywait/messagebuffer_direct/writers_8_waiters_1 25.7 k allocs: 1.31 MB 25.7 k allocs: 1.31 MB 1
querywait/register_query_wait/writers_1_waiters_1 2.59 k allocs: 0.14 MB 2.59 k allocs: 0.14 MB 1
querywait/register_query_wait/writers_1_waiters_8 11.7 k allocs: 0.594 MB 11.7 k allocs: 0.594 MB 1
querywait/register_query_wait/writers_4_waiters_4 27.1 k allocs: 1.4 MB 27.1 k allocs: 1.4 MB 1
querywait/register_query_wait/writers_8_waiters_1 20.6 k allocs: 1.12 MB 20.6 k allocs: 1.12 MB 1
querywait/register_querydelete_wait/writers_1_waiters_1 2.52 k allocs: 0.135 MB 2.52 k allocs: 0.135 MB 1
querywait/register_querydelete_wait/writers_1_waiters_8 11.7 k allocs: 0.589 MB 11.7 k allocs: 0.589 MB 1
querywait/register_querydelete_wait/writers_4_waiters_4 26.9 k allocs: 1.38 MB 26.9 k allocs: 1.38 MB 1
querywait/register_querydelete_wait/writers_8_waiters_1 20.1 k allocs: 1.08 MB 20.1 k allocs: 1.08 MB 1
register/creation_and_initialization/from_tests 2.58 k allocs: 0.943 MB 2.58 k allocs: 0.943 MB 1
tagquery/messagebuffer/query 2 allocs: 0.0625 kB 2 allocs: 0.0625 kB 1
tagquery/messagebuffer/query_high_arity 2 allocs: 0.0625 kB 2 allocs: 0.0625 kB 1
tagquery/messagebuffer/query_high_arity_predicate 0.393 k allocs: 6.22 kB 0.393 k allocs: 6.22 kB 1
tagquery/messagebuffer/query_miss 0 allocs: 0 B 0 allocs: 0 B
tagquery/messagebuffer/query_tag_dispatch 2 allocs: 0.0625 kB 2 allocs: 0.0625 kB 1
tagquery/messagebuffer/querydelete 3 allocs: 0.0938 kB 3 allocs: 0.0938 kB 1
tagquery/messagebuffer/querydelete_back 1 allocs: 32 B 1 allocs: 32 B 1
tagquery/messagebuffer/querydelete_front 1 allocs: 32 B 1 allocs: 32 B 1
tagquery/messagebuffer/querydelete_miss 0 allocs: 0 B 0 allocs: 0 B
tagquery/misc/from_tests 0.187 k allocs: 13.1 kB 0.187 k allocs: 13.1 kB 1
tagquery/register/query 4.95 M allocs: 0.617 GB 2.01 M allocs: 0.245 GB 2.52
tagquery/register/query_assigned 3 allocs: 0.281 kB 3 allocs: 0.281 kB 1
tagquery/register/query_exact_fifo 2 allocs: 0.266 kB 2 allocs: 0.266 kB 1
tagquery/register/query_exact_filo 2 allocs: 0.266 kB 2 allocs: 0.266 kB 1
tagquery/register/query_locked 3 allocs: 0.281 kB 3 allocs: 0.281 kB 1
tagquery/register/query_miss 1 allocs: 0.109 kB 1 allocs: 0.109 kB 1
tagquery/register/query_predicate 14 allocs: 0.578 kB 14 allocs: 0.578 kB 1
tagquery/register/query_tag_dispatch 2 allocs: 0.266 kB 2 allocs: 0.266 kB 1
tagquery/register/query_unassigned 3 allocs: 0.281 kB 3 allocs: 0.281 kB 1
tagquery/register/queryall 3.84 M allocs: 0.743 GB 1.92 M allocs: 0.362 GB 2.05
tagquery/register/queryall_fifo 6 allocs: 6.8 kB 6 allocs: 6.8 kB 1
tagquery/register/queryall_filo 6 allocs: 6.8 kB 6 allocs: 6.8 kB 1
tagquery/register/queryall_tag_dispatch 3 allocs: 0.625 kB 3 allocs: 0.625 kB 1
tagquery/register_high_arity/query_exact 2 allocs: 0.266 kB 2 allocs: 0.266 kB 1
tagquery/register_high_arity/query_predicate 21 allocs: 0.75 kB 21 allocs: 0.75 kB 1
tagquery/register_high_arity/queryall 3 allocs: 0.625 kB 3 allocs: 0.625 kB 1
tagquery/register_mutating/querydelete_register 2 allocs: 0.266 kB 2 allocs: 0.266 kB 1
tagquery/register_mutating/querydelete_regref_fifo 2 allocs: 0.266 kB 2 allocs: 0.266 kB 1
tagquery/register_mutating/querydelete_regref_filo 2 allocs: 0.266 kB 2 allocs: 0.266 kB 1
tagquery/register_mutating/untag_by_id 2 allocs: 0.0625 kB 2 allocs: 0.0625 kB 1
tagquery/register_ref/query_fifo 3 allocs: 0.375 kB 3 allocs: 0.375 kB 1
tagquery/register_ref/query_filo 3 allocs: 0.375 kB 3 allocs: 0.375 kB 1
tagquery/register_ref/query_tag_dispatch 3 allocs: 0.375 kB 3 allocs: 0.375 kB 1
tagquery/register_ref/queryall_fifo 4 allocs: 0.734 kB 4 allocs: 0.734 kB 1
tagquery/register_ref/queryall_filo 4 allocs: 0.734 kB 4 allocs: 0.734 kB 1
time_to_load 0.148 k allocs: 10.8 kB 0.143 k allocs: 10.6 kB 1.02

@nenadilic84
Copy link
Copy Markdown
Author

LLM disclosure per Stefan's request on #334: I used Claude (Anthropic) via the Claude Code CLI on this PR. Used the firstgenrepeater examples as a starting point. Claude generated initial scripts, I adjusted the network topology and RegisterNet usage. Ran both GLMakie and WGLMakie versions locally. See #334 for the full breakdown.

@hanakl
Copy link
Copy Markdown
Contributor

hanakl commented Feb 25, 2026

Hi @nenadilic84, thank you for your submission! Could you please clarify what you mean by “bidirectional entanglement flow” in your example? Also, can you share generated example visuals along with a more detailed explanation of the figures of merit (there seemed to be many when I ran the code)? It would be beneficial for both of you and me if you could do this without relying on LLM.

@Krastanov
Copy link
Copy Markdown
Member

Thanks @nenadilic84 ! Just to follow up on Hana's comment, the "bidirectionality" idea is not super clear to me. There isn't really a notion of direction when it comes to generating a Bell pair, so it would be helpful to discuss in a more pedagogical fashion how it is introduced here and why is it a useful concept.

I will convert this into a draft for now just to keep my review queue a bit more organized, do not hesitate to convert it back to a non-draft and request further reviews.

@Krastanov Krastanov marked this pull request as draft February 27, 2026 18:21
@Krastanov
Copy link
Copy Markdown
Member

It has been a month since converting this to a draft. I will close for now, to keep the queue clean, but do not hesitate to reopen if you want to take it on again.

@Krastanov Krastanov closed this Mar 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement a new interactive example [$400]

3 participants