Skip to content

batch-spanning chunking in threaded execution #219

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

hexaeder
Copy link
Member

No description provided.

This comment has been minimized.

@hexaeder hexaeder force-pushed the hw/threadchunking branch from a10dcb8 to 17a4526 Compare March 17, 2025 08:35

This comment has been minimized.

@hexaeder hexaeder force-pushed the hw/threadchunking branch from 17a4526 to 5321ec7 Compare March 17, 2025 17:50

This comment has been minimized.

@hexaeder hexaeder force-pushed the hw/threadchunking branch from 5321ec7 to ea60fb1 Compare March 20, 2025 10:13
Copy link
Contributor

Benchmark Results
┌──────────────────────────────────────────────┬────────┬────────────┬────────────┬─────────────┬─────────┬──────────┬─────────────┐
│ Key                                          │        │ Time       │            │             │ Allocs  │          │             │
│                                              │        │ target     │ baseline   │             │ target  │ baseline │             │
├──────────────────────────────────────────────┼────────┼────────────┼────────────┼─────────────┼─────────┼──────────┼─────────────┤
│ diffusion_static_edge → assemble             │    100 │ 774.563 μs │ 734.387 μs │   +5.5 % ❌ │   10681 │    10681 │   +0.0 % ➖ │
│                                              │    300 │   7.906 ms │   6.167 ms │  +28.2 % ❌ │   91492 │    91492 │   +0.0 % ➖ │
│                                              │   1000 │ 112.826 ms │ 102.533 ms │  +10.0 % ❌ │ 1004298 │  1004298 │   +0.0 % ➖ │
│                                              │   3000 │    1.333 s │    1.509 s │  -11.6 % ✅ │ 9012298 │  9012298 │   +0.0 % ➖ │
│ diffusion_static_edge → seq → seq            │    100 │  10.900 μs │  10.835 μs │   +0.6 % ➖ │         │          │   +0.0 % ➖ │
│                                              │    300 │ 109.605 μs │ 111.669 μs │   -1.8 % ➖ │         │          │   +0.0 % ➖ │
│                                              │   1000 │   1.308 ms │   1.323 ms │   -1.1 % ➖ │         │          │   +0.0 % ➖ │
│                                              │   3000 │  12.900 ms │  12.852 ms │   +0.4 % ➖ │         │          │   +0.0 % ➖ │
│ diffusion_static_edge → ka → seq             │    100 │  19.035 μs │  18.594 μs │   +2.4 % ➖ │      87 │       87 │   +0.0 % ➖ │
│                                              │    300 │ 112.441 μs │ 109.365 μs │   +2.8 % ➖ │     172 │      172 │   +0.0 % ➖ │
│                                              │   1000 │   1.239 ms │   1.239 ms │   -0.0 % ➖ │    1066 │     1066 │   +0.0 % ➖ │
│                                              │   3000 │  12.216 ms │  12.096 ms │   +1.0 % ➖ │    8957 │     8957 │   +0.0 % ➖ │
│ diffusion_static_edge → poly → seq           │    100 │  12.093 μs │  12.078 μs │   +0.1 % ➖ │       3 │        3 │   +0.0 % ➖ │
│                                              │    300 │ 104.817 μs │ 106.009 μs │   -1.1 % ➖ │       3 │        3 │   +0.0 % ➖ │
│                                              │   1000 │   1.196 ms │   1.207 ms │   -0.9 % ➖ │       3 │        3 │   +0.0 % ➖ │
│                                              │   3000 │  12.359 ms │  12.381 ms │   -0.2 % ➖ │       3 │        3 │   +0.0 % ➖ │
│ diffusion_static_edge → thrd → seq           │    100 │  30.137 μs │  18.845 μs │  +59.9 % ❌ │     165 │       66 │ +150.0 % ❌ │
│                                              │    300 │ 123.482 μs │ 110.457 μs │  +11.8 % ❌ │     165 │       66 │ +150.0 % ❌ │
│                                              │   1000 │   1.211 ms │   1.198 ms │   +1.1 % ➖ │     165 │       66 │ +150.0 % ❌ │
│                                              │   3000 │  12.060 ms │  12.016 ms │   +0.4 % ➖ │     165 │       66 │ +150.0 % ❌ │
│ diffusion_static_edge → seq_buf → seq        │    100 │  11.597 μs │  11.261 μs │   +3.0 % ➖ │         │          │   +0.0 % ➖ │
│                                              │    300 │ 117.921 μs │ 115.276 μs │   +2.3 % ➖ │         │          │   +0.0 % ➖ │
│                                              │   1000 │   1.418 ms │   1.384 ms │   +2.5 % ➖ │         │          │   +0.0 % ➖ │
│                                              │   3000 │  14.477 ms │  13.931 ms │   +3.9 % ➖ │         │          │   +0.0 % ➖ │
│ diffusion_static_edge → ka_buf → seq         │    100 │  18.144 μs │  20.729 μs │  -12.5 % ✅ │      87 │       87 │   +0.0 % ➖ │
│                                              │    300 │ 130.234 μs │ 134.362 μs │   -3.1 % ➖ │     172 │      172 │   +0.0 % ➖ │
│                                              │   1000 │   1.413 ms │   1.432 ms │   -1.3 % ➖ │    1066 │     1066 │   +0.0 % ➖ │
│                                              │   3000 │  13.983 ms │  13.683 ms │   +2.2 % ➖ │    8957 │     8957 │   +0.0 % ➖ │
│ diffusion_static_edge → poly_buf → seq       │    100 │  15.058 μs │  17.813 μs │  -15.5 % ✅ │       3 │        3 │   +0.0 % ➖ │
│                                              │    300 │ 129.773 μs │ 158.678 μs │  -18.2 % ✅ │       3 │        3 │   +0.0 % ➖ │
│                                              │   1000 │   1.436 ms │   1.808 ms │  -20.6 % ✅ │       3 │        3 │   +0.0 % ➖ │
│                                              │   3000 │  14.338 ms │  17.388 ms │  -17.5 % ✅ │       3 │        3 │   +0.0 % ➖ │
│ diffusion_static_edge → poly_buf → ka        │    100 │  35.727 μs │  32.922 μs │   +8.5 % ❌ │      55 │       55 │   +0.0 % ➖ │
│                                              │    300 │ 259.146 μs │ 231.314 μs │  +12.0 % ❌ │      55 │       55 │   +0.0 % ➖ │
│                                              │   1000 │   2.836 ms │   2.483 ms │  +14.2 % ❌ │      55 │       55 │   +0.0 % ➖ │
│                                              │   3000 │  26.434 ms │  23.362 ms │  +13.1 % ❌ │      56 │       56 │   +0.0 % ➖ │
│ diffusion_static_edge → poly_buf → poly      │    100 │   9.538 μs │  12.764 μs │  -25.3 % ✅ │       6 │        6 │   +0.0 % ➖ │
│                                              │    300 │  66.384 μs │  96.130 μs │  -30.9 % ✅ │       6 │        6 │   +0.0 % ➖ │
│                                              │   1000 │ 680.206 μs │   1.048 ms │  -35.1 % ✅ │       6 │        6 │   +0.0 % ➖ │
│                                              │   3000 │   7.417 ms │  10.581 ms │  -29.9 % ✅ │       6 │        6 │   +0.0 % ➖ │
│ diffusion_static_edge → poly_buf → thrd      │    100 │  19.557 μs │  16.782 μs │  +16.5 % ❌ │      25 │       25 │   +0.0 % ➖ │
│                                              │    300 │ 128.100 μs │ 101.611 μs │  +26.1 % ❌ │      25 │       25 │   +0.0 % ➖ │
│                                              │   1000 │   1.349 ms │   1.007 ms │  +34.0 % ❌ │      25 │       25 │   +0.0 % ➖ │
│                                              │   3000 │  13.590 ms │  10.368 ms │  +31.1 % ❌ │      25 │       25 │   +0.0 % ➖ │
│ diffusion_static_edge → poly_buf → sprs      │    100 │  19.817 μs │  19.587 μs │   +1.2 % ➖ │       3 │        3 │   +0.0 % ➖ │
│                                              │    300 │ 164.378 μs │ 168.726 μs │   -2.6 % ➖ │       3 │        3 │   +0.0 % ➖ │
│                                              │   1000 │   1.845 ms │   1.859 ms │   -0.7 % ➖ │       3 │        3 │   +0.0 % ➖ │
│                                              │   3000 │  17.805 ms │  17.762 ms │   +0.2 % ➖ │       3 │        3 │   +0.0 % ➖ │
│ diffusion_static_edge → thrd_buf → seq       │    100 │  29.365 μs │  25.017 μs │  +17.4 % ❌ │     165 │       66 │ +150.0 % ❌ │
│                                              │    300 │ 155.522 μs │ 151.905 μs │   +2.4 % ➖ │     165 │       66 │ +150.0 % ❌ │
│                                              │   1000 │   1.434 ms │   1.452 ms │   -1.2 % ➖ │     165 │       66 │ +150.0 % ❌ │
│                                              │   3000 │  13.483 ms │  13.763 ms │   -2.0 % ➖ │     165 │       66 │ +150.0 % ❌ │
│ diffusion_ode_edge → assemble                │    100 │ 800.611 μs │ 805.230 μs │   -0.6 % ➖ │   10692 │    10692 │   +0.0 % ➖ │
│                                              │    300 │   6.594 ms │   6.659 ms │   -1.0 % ➖ │   91502 │    91502 │   +0.0 % ➖ │
│                                              │   1000 │ 122.003 ms │ 149.697 ms │  -18.5 % ✅ │ 1004305 │  1004305 │   +0.0 % ➖ │
│                                              │   3000 │    1.729 s │    1.815 s │   -4.7 % ➖ │ 9012305 │  9012305 │   +0.0 % ➖ │
│ diffusion_ode_edge → seq → seq               │    100 │  43.351 μs │  43.231 μs │   +0.3 % ➖ │         │          │   +0.0 % ➖ │
│                                              │    300 │ 407.744 μs │ 408.706 μs │   -0.2 % ➖ │         │          │   +0.0 % ➖ │
│                                              │   1000 │   4.662 ms │   4.659 ms │   +0.1 % ➖ │         │          │   +0.0 % ➖ │
│                                              │   3000 │  46.570 ms │  43.616 ms │   +6.8 % ❌ │         │          │   +0.0 % ➖ │
│ diffusion_ode_edge → ka → seq                │    100 │  50.074 μs │  48.761 μs │   +2.7 % ➖ │     140 │      140 │   +0.0 % ➖ │
│                                              │    300 │ 287.829 μs │ 299.261 μs │   -3.8 % ➖ │     291 │      291 │   +0.0 % ➖ │
│                                              │   1000 │   2.916 ms │   2.912 ms │   +0.1 % ➖ │    1854 │     1854 │   +0.0 % ➖ │
│                                              │   3000 │  28.072 ms │  28.016 ms │   +0.2 % ➖ │   15605 │    15605 │   +0.0 % ➖ │
│ diffusion_ode_edge → poly → seq              │    100 │  27.962 μs │  28.303 μs │   -1.2 % ➖ │       4 │        4 │   +0.0 % ➖ │
│                                              │    300 │ 250.440 μs │ 254.016 μs │   -1.4 % ➖ │       4 │        4 │   +0.0 % ➖ │
│                                              │   1000 │   2.813 ms │   2.857 ms │   -1.6 % ➖ │       4 │        4 │   +0.0 % ➖ │
│                                              │   3000 │  26.836 ms │  27.145 ms │   -1.1 % ➖ │       4 │        4 │   +0.0 % ➖ │
│ diffusion_ode_edge → thrd → seq              │    100 │  46.898 μs │  38.773 μs │  +21.0 % ❌ │     165 │       88 │  +87.5 % ❌ │
│                                              │    300 │ 277.903 μs │ 271.318 μs │   +2.4 % ➖ │     165 │       88 │  +87.5 % ❌ │
│                                              │   1000 │   2.869 ms │   2.823 ms │   +1.6 % ➖ │     165 │       88 │  +87.5 % ❌ │
│                                              │   3000 │  26.841 ms │  27.162 ms │   -1.2 % ➖ │     165 │       88 │  +87.5 % ❌ │
│ diffusion_ode_edge → seq_buf → seq           │    100 │  41.097 μs │  41.558 μs │   -1.1 % ➖ │         │          │   +0.0 % ➖ │
│                                              │    300 │ 388.651 μs │ 392.978 μs │   -1.1 % ➖ │         │          │   +0.0 % ➖ │
│                                              │   1000 │   4.438 ms │   4.483 ms │   -1.0 % ➖ │         │          │   +0.0 % ➖ │
│                                              │   3000 │  41.561 ms │  42.307 ms │   -1.8 % ➖ │         │          │   +0.0 % ➖ │
│ diffusion_ode_edge → ka_buf → seq            │    100 │  55.133 μs │  55.724 μs │   -1.1 % ➖ │     140 │      140 │   +0.0 % ➖ │
│                                              │    300 │ 302.427 μs │ 306.545 μs │   -1.3 % ➖ │     291 │      291 │   +0.0 % ➖ │
│                                              │   1000 │   3.087 ms │   3.127 ms │   -1.3 % ➖ │    1854 │     1854 │   +0.0 % ➖ │
│                                              │   3000 │  29.585 ms │  29.829 ms │   -0.8 % ➖ │   15605 │    15605 │   +0.0 % ➖ │
│ diffusion_ode_edge → poly_buf → seq          │    100 │  32.020 μs │  32.541 μs │   -1.6 % ➖ │       4 │        4 │   +0.0 % ➖ │
│                                              │    300 │ 286.026 μs │ 289.323 μs │   -1.1 % ➖ │       4 │        4 │   +0.0 % ➖ │
│                                              │   1000 │   3.216 ms │   3.258 ms │   -1.3 % ➖ │       4 │        4 │   +0.0 % ➖ │
│                                              │   3000 │  30.676 ms │  31.013 ms │   -1.1 % ➖ │       4 │        4 │   +0.0 % ➖ │
│ diffusion_ode_edge → poly_buf → ka           │    100 │  47.028 μs │  50.455 μs │   -6.8 % ✅ │      56 │       56 │   +0.0 % ➖ │
│                                              │    300 │ 356.708 μs │ 391.805 μs │   -9.0 % ✅ │      56 │       56 │   +0.0 % ➖ │
│                                              │   1000 │   3.871 ms │   4.261 ms │   -9.1 % ✅ │      56 │       56 │   +0.0 % ➖ │
│                                              │   3000 │  36.505 ms │  39.920 ms │   -8.6 % ✅ │      57 │       57 │   +0.0 % ➖ │
│ diffusion_ode_edge → poly_buf → poly         │    100 │  26.680 μs │  27.191 μs │   -1.9 % ➖ │       7 │        7 │   +0.0 % ➖ │
│                                              │    300 │ 231.114 μs │ 233.258 μs │   -0.9 % ➖ │       7 │        7 │   +0.0 % ➖ │
│                                              │   1000 │   2.498 ms │   2.531 ms │   -1.3 % ➖ │       7 │        7 │   +0.0 % ➖ │
│                                              │   3000 │  24.483 ms │  24.626 ms │   -0.6 % ➖ │       7 │        7 │   +0.0 % ➖ │
│ diffusion_ode_edge → poly_buf → thrd         │    100 │  33.533 μs │  34.084 μs │   -1.6 % ➖ │      26 │       26 │   +0.0 % ➖ │
│                                              │    300 │ 255.910 μs │ 258.946 μs │   -1.2 % ➖ │      26 │       26 │   +0.0 % ➖ │
│                                              │   1000 │   2.798 ms │   2.871 ms │   -2.5 % ➖ │      26 │       26 │   +0.0 % ➖ │
│                                              │   3000 │  27.103 ms │  27.304 ms │   -0.7 % ➖ │      26 │       26 │   +0.0 % ➖ │
│ diffusion_ode_edge → poly_buf → sprs         │    100 │  33.773 μs │  37.300 μs │   -9.5 % ✅ │       4 │        4 │   +0.0 % ➖ │
│                                              │    300 │ 292.738 μs │ 327.144 μs │  -10.5 % ✅ │       4 │        4 │   +0.0 % ➖ │
│                                              │   1000 │   3.284 ms │   3.672 ms │  -10.6 % ✅ │       4 │        4 │   +0.0 % ➖ │
│                                              │   3000 │  31.072 ms │  34.659 ms │  -10.3 % ✅ │       4 │        4 │   +0.0 % ➖ │
│ diffusion_ode_edge → thrd_buf → seq          │    100 │  48.110 μs │  44.113 μs │   +9.1 % ❌ │     165 │       88 │  +87.5 % ❌ │
│                                              │    300 │ 306.946 μs │ 283.342 μs │   +8.3 % ❌ │     165 │       88 │  +87.5 % ❌ │
│                                              │   1000 │   3.093 ms │   3.033 ms │   +2.0 % ➖ │     165 │       88 │  +87.5 % ❌ │
│                                              │   3000 │  28.854 ms │  28.679 ms │   +0.6 % ➖ │     165 │       88 │  +87.5 % ❌ │
│ kuramoto_homogeneous → assemble              │    100 │ 109.786 μs │  98.345 μs │  +11.6 % ❌ │    1069 │     1069 │   +0.0 % ➖ │
│                                              │   1000 │ 953.258 μs │ 944.619 μs │   +0.9 % ➖ │    8302 │     8302 │   +0.0 % ➖ │
│                                              │  10000 │   8.266 ms │   8.018 ms │   +3.1 % ➖ │   80302 │    80302 │   +0.0 % ➖ │
│                                              │ 100000 │  68.025 ms │  67.138 ms │   +1.3 % ➖ │  800302 │   800302 │   +0.0 % ➖ │
│ kuramoto_homogeneous → seq → seq             │    100 │   1.132 μs │   1.128 μs │   +0.4 % ➖ │         │          │   +0.0 % ➖ │
│                                              │   1000 │  11.386 μs │  11.532 μs │   -1.3 % ➖ │         │          │   +0.0 % ➖ │
│                                              │  10000 │ 121.578 μs │ 122.058 μs │   -0.4 % ➖ │         │          │   +0.0 % ➖ │
│                                              │ 100000 │   1.558 ms │   1.603 ms │   -2.8 % ➖ │         │          │   +0.0 % ➖ │
│ kuramoto_homogeneous → ka → seq              │    100 │   3.072 μs │   3.092 μs │   -0.6 % ➖ │      46 │       46 │   +0.0 % ➖ │
│                                              │   1000 │  13.355 μs │  13.501 μs │   -1.1 % ➖ │      49 │       49 │   +0.0 % ➖ │
│                                              │  10000 │ 147.277 μs │ 132.629 μs │  +11.0 % ❌ │     271 │      271 │   +0.0 % ➖ │
│                                              │ 100000 │   1.106 ms │   1.085 ms │   +1.9 % ➖ │    1239 │     1239 │   +0.0 % ➖ │
│ kuramoto_homogeneous → poly → seq            │    100 │   1.879 μs │   1.845 μs │   +1.8 % ➖ │       3 │        3 │   +0.0 % ➖ │
│                                              │   1000 │  10.755 μs │  10.435 μs │   +3.1 % ➖ │       3 │        3 │   +0.0 % ➖ │
│                                              │  10000 │  99.236 μs │  94.637 μs │   +4.9 % ➖ │       3 │        3 │   +0.0 % ➖ │
│                                              │ 100000 │   1.098 ms │   1.058 ms │   +3.8 % ➖ │       3 │        3 │   +0.0 % ➖ │
│ kuramoto_homogeneous → thrd → seq            │    100 │  22.523 μs │  11.161 μs │ +101.8 % ❌ │     165 │       66 │ +150.0 % ❌ │
│                                              │   1000 │  32.191 μs │  21.400 μs │  +50.4 % ❌ │     165 │       66 │ +150.0 % ❌ │
│                                              │  10000 │ 140.293 μs │ 109.465 μs │  +28.2 % ❌ │     165 │       66 │ +150.0 % ❌ │
│                                              │ 100000 │   1.038 ms │ 955.990 μs │   +8.6 % ❌ │     165 │       66 │ +150.0 % ❌ │
│ kuramoto_homogeneous → seq_buf → seq         │    100 │   1.056 μs │   1.056 μs │   +0.0 % ➖ │         │          │   +0.0 % ➖ │
│                                              │   1000 │  10.620 μs │  10.720 μs │   -0.9 % ➖ │         │          │   +0.0 % ➖ │
│                                              │  10000 │ 110.668 μs │ 109.295 μs │   +1.3 % ➖ │         │          │   +0.0 % ➖ │
│                                              │ 100000 │   1.283 ms │   1.206 ms │   +6.4 % ❌ │         │          │   +0.0 % ➖ │
│ kuramoto_homogeneous → ka_buf → seq          │    100 │   3.047 μs │   3.017 μs │   +1.0 % ➖ │      46 │       46 │   +0.0 % ➖ │
│                                              │   1000 │  12.724 μs │  12.639 μs │   +0.7 % ➖ │      49 │       49 │   +0.0 % ➖ │
│                                              │  10000 │ 151.935 μs │ 148.918 μs │   +2.0 % ➖ │     271 │      271 │   +0.0 % ➖ │
│                                              │ 100000 │   1.054 ms │   1.101 ms │   -4.3 % ➖ │    1239 │     1239 │   +0.0 % ➖ │
│ kuramoto_homogeneous → poly_buf → seq        │    100 │   2.082 μs │   2.084 μs │   -0.1 % ➖ │       3 │        3 │   +0.0 % ➖ │
│                                              │   1000 │  12.093 μs │  10.625 μs │  +13.8 % ❌ │       3 │        3 │   +0.0 % ➖ │
│                                              │  10000 │ 113.533 μs │  98.404 μs │  +15.4 % ❌ │       3 │        3 │   +0.0 % ➖ │
│                                              │ 100000 │   1.257 ms │   1.144 ms │   +9.9 % ❌ │       3 │        3 │   +0.0 % ➖ │
│ kuramoto_homogeneous → poly_buf → ka         │    100 │   2.954 μs │   2.798 μs │   +5.6 % ❌ │      13 │       13 │   +0.0 % ➖ │
│                                              │   1000 │  21.361 μs │  21.130 μs │   +1.1 % ➖ │      37 │       37 │   +0.0 % ➖ │
│                                              │  10000 │ 169.989 μs │ 169.427 μs │   +0.3 % ➖ │      55 │       55 │   +0.0 % ➖ │
│                                              │ 100000 │   1.883 ms │   1.833 ms │   +2.7 % ➖ │      55 │       55 │   +0.0 % ➖ │
│ kuramoto_homogeneous → poly_buf → poly       │    100 │   2.627 μs │   2.709 μs │   -3.0 % ➖ │       6 │        6 │   +0.0 % ➖ │
│                                              │   1000 │  11.547 μs │  12.228 μs │   -5.6 % ✅ │       6 │        6 │   +0.0 % ➖ │
│                                              │  10000 │ 106.550 μs │ 106.420 μs │   +0.1 % ➖ │       6 │        6 │   +0.0 % ➖ │
│                                              │ 100000 │   1.198 ms │   1.211 ms │   -1.1 % ➖ │       6 │        6 │   +0.0 % ➖ │
│ kuramoto_homogeneous → poly_buf → thrd       │    100 │   7.569 μs │   7.619 μs │   -0.7 % ➖ │      25 │       25 │   +0.0 % ➖ │
│                                              │   1000 │  18.334 μs │  19.006 μs │   -3.5 % ➖ │      25 │       25 │   +0.0 % ➖ │
│                                              │  10000 │ 135.374 μs │ 146.073 μs │   -7.3 % ✅ │      25 │       25 │   +0.0 % ➖ │
│                                              │ 100000 │   1.853 ms │   1.972 ms │   -6.1 % ✅ │      25 │       25 │   +0.0 % ➖ │
│ kuramoto_homogeneous → poly_buf → sprs       │    100 │   2.404 μs │   2.472 μs │   -2.7 % ➖ │       3 │        3 │   +0.0 % ➖ │
│                                              │   1000 │  15.540 μs │  15.399 μs │   +0.9 % ➖ │       3 │        3 │   +0.0 % ➖ │
│                                              │  10000 │ 150.753 μs │ 149.390 μs │   +0.9 % ➖ │       3 │        3 │   +0.0 % ➖ │
│                                              │ 100000 │   1.780 ms │   1.777 ms │   +0.2 % ➖ │       3 │        3 │   +0.0 % ➖ │
│ kuramoto_homogeneous → thrd_buf → seq        │    100 │  19.867 μs │  10.410 μs │  +90.9 % ❌ │     165 │       66 │ +150.0 % ❌ │
│                                              │   1000 │  37.981 μs │  18.684 μs │ +103.3 % ❌ │     165 │       66 │ +150.0 % ❌ │
│                                              │  10000 │ 133.821 μs │  95.358 μs │  +40.3 % ❌ │     165 │       66 │ +150.0 % ❌ │
│                                              │ 100000 │   1.008 ms │   1.016 ms │   -0.8 % ➖ │     165 │       66 │ +150.0 % ❌ │
│ kuramoto_heterogeneous → assemble            │    100 │ 175.690 μs │ 166.401 μs │   +5.6 % ❌ │     823 │      823 │   +0.0 % ➖ │
│                                              │   1000 │ 918.252 μs │ 877.204 μs │   +4.7 % ➖ │    5365 │     5365 │   +0.0 % ➖ │
│                                              │  10000 │   9.797 ms │   9.884 ms │   -0.9 % ➖ │   50394 │    50394 │   +0.0 % ➖ │
│                                              │ 100000 │  90.055 ms │  89.181 ms │   +1.0 % ➖ │  500411 │   500411 │   +0.0 % ➖ │
│ kuramoto_heterogeneous → seq → seq           │    100 │   1.110 μs │   1.106 μs │   +0.4 % ➖ │         │          │   +0.0 % ➖ │
│                                              │   1000 │  11.286 μs │  11.131 μs │   +1.4 % ➖ │         │          │   +0.0 % ➖ │
│                                              │  10000 │ 119.755 μs │ 119.794 μs │   -0.0 % ➖ │         │          │   +0.0 % ➖ │
│                                              │ 100000 │   1.532 ms │   1.540 ms │   -0.5 % ➖ │         │          │   +0.0 % ➖ │
│ kuramoto_heterogeneous → ka → seq            │    100 │   4.497 μs │   4.575 μs │   -1.7 % ➖ │      76 │       76 │   +0.0 % ➖ │
│                                              │   1000 │  14.897 μs │  14.788 μs │   +0.7 % ➖ │      77 │       77 │   +0.0 % ➖ │
│                                              │  10000 │ 171.942 μs │ 162.134 μs │   +6.0 % ❌ │     378 │      378 │   +0.0 % ➖ │
│                                              │ 100000 │   1.081 ms │   1.080 ms │   +0.1 % ➖ │    1346 │     1346 │   +0.0 % ➖ │
│ kuramoto_heterogeneous → poly → seq          │    100 │   2.446 μs │   2.397 μs │   +2.1 % ➖ │       5 │        5 │   +0.0 % ➖ │
│                                              │   1000 │  11.382 μs │  10.916 μs │   +4.3 % ➖ │       5 │        5 │   +0.0 % ➖ │
│                                              │  10000 │  97.582 μs │  96.411 μs │   +1.2 % ➖ │       5 │        5 │   +0.0 % ➖ │
│                                              │ 100000 │   1.052 ms │   1.067 ms │   -1.4 % ➖ │       5 │        5 │   +0.0 % ➖ │
│ kuramoto_heterogeneous → thrd → seq          │    100 │  21.260 μs │  17.162 μs │  +23.9 % ❌ │     165 │      110 │  +50.0 % ❌ │
│                                              │   1000 │  41.728 μs │  28.273 μs │  +47.6 % ❌ │     165 │      110 │  +50.0 % ❌ │
│                                              │  10000 │ 135.685 μs │ 123.171 μs │  +10.2 % ❌ │     165 │      110 │  +50.0 % ❌ │
│                                              │ 100000 │ 990.576 μs │ 943.918 μs │   +4.9 % ➖ │     165 │      110 │  +50.0 % ❌ │
│ kuramoto_heterogeneous → seq_buf → seq       │    100 │   1.022 μs │   1.061 μs │   -3.7 % ➖ │         │          │   +0.0 % ➖ │
│                                              │   1000 │  10.339 μs │  10.485 μs │   -1.4 % ➖ │         │          │   +0.0 % ➖ │
│                                              │  10000 │ 112.260 μs │ 108.824 μs │   +3.2 % ➖ │         │          │   +0.0 % ➖ │
│                                              │ 100000 │   1.210 ms │   1.212 ms │   -0.2 % ➖ │         │          │   +0.0 % ➖ │
│ kuramoto_heterogeneous → ka_buf → seq        │    100 │   4.404 μs │   4.452 μs │   -1.1 % ➖ │      76 │       76 │   +0.0 % ➖ │
│                                              │   1000 │  13.851 μs │  13.741 μs │   +0.8 % ➖ │      77 │       77 │   +0.0 % ➖ │
│                                              │  10000 │ 161.581 μs │ 154.650 μs │   +4.5 % ➖ │     378 │      378 │   +0.0 % ➖ │
│                                              │ 100000 │   1.059 ms │   1.061 ms │   -0.2 % ➖ │    1346 │     1346 │   +0.0 % ➖ │
│ kuramoto_heterogeneous → poly_buf → seq      │    100 │   2.634 μs │   2.615 μs │   +0.7 % ➖ │       5 │        5 │   +0.0 % ➖ │
│                                              │   1000 │  13.034 μs │  12.609 μs │   +3.4 % ➖ │       5 │        5 │   +0.0 % ➖ │
│                                              │  10000 │ 102.100 μs │  98.174 μs │   +4.0 % ➖ │       5 │        5 │   +0.0 % ➖ │
│                                              │ 100000 │   1.227 ms │   1.212 ms │   +1.3 % ➖ │       5 │        5 │   +0.0 % ➖ │
│ kuramoto_heterogeneous → poly_buf → ka       │    100 │   3.509 μs │   3.346 μs │   +4.9 % ➖ │      15 │       15 │   +0.0 % ➖ │
│                                              │   1000 │  21.811 μs │  21.090 μs │   +3.4 % ➖ │      39 │       39 │   +0.0 % ➖ │
│                                              │  10000 │ 168.857 μs │ 168.606 μs │   +0.1 % ➖ │      57 │       57 │   +0.0 % ➖ │
│                                              │ 100000 │   1.838 ms │   1.760 ms │   +4.4 % ➖ │      57 │       57 │   +0.0 % ➖ │
│ kuramoto_heterogeneous → poly_buf → poly     │    100 │   3.278 μs │   3.188 μs │   +2.8 % ➖ │       8 │        8 │   +0.0 % ➖ │
│                                              │   1000 │  13.620 μs │  12.549 μs │   +8.5 % ❌ │       8 │        8 │   +0.0 % ➖ │
│                                              │  10000 │ 119.294 μs │ 106.078 μs │  +12.5 % ❌ │       8 │        8 │   +0.0 % ➖ │
│                                              │ 100000 │   1.302 ms │   1.185 ms │   +9.9 % ❌ │       8 │        8 │   +0.0 % ➖ │
│ kuramoto_heterogeneous → poly_buf → thrd     │    100 │   8.116 μs │   8.181 μs │   -0.8 % ➖ │      27 │       27 │   +0.0 % ➖ │
│                                              │   1000 │  19.657 μs │  19.777 μs │   -0.6 % ➖ │      27 │       27 │   +0.0 % ➖ │
│                                              │  10000 │ 144.180 μs │ 143.168 μs │   +0.7 % ➖ │      27 │       27 │   +0.0 % ➖ │
│                                              │ 100000 │   1.860 ms │   1.824 ms │   +2.0 % ➖ │      27 │       27 │   +0.0 % ➖ │
│ kuramoto_heterogeneous → poly_buf → sprs     │    100 │   3.232 μs │   2.920 μs │  +10.7 % ❌ │       5 │        5 │   +0.0 % ➖ │
│                                              │   1000 │  16.381 μs │  14.848 μs │  +10.3 % ❌ │       5 │        5 │   +0.0 % ➖ │
│                                              │  10000 │ 150.471 μs │ 138.690 μs │   +8.5 % ❌ │       5 │        5 │   +0.0 % ➖ │
│                                              │ 100000 │   1.766 ms │   1.674 ms │   +5.5 % ❌ │       5 │        5 │   +0.0 % ➖ │
│ kuramoto_heterogeneous → thrd_buf → seq      │    100 │  30.056 μs │  25.718 μs │  +16.9 % ❌ │     165 │      110 │  +50.0 % ❌ │
│                                              │   1000 │  38.763 μs │  28.023 μs │  +38.3 % ❌ │     165 │      110 │  +50.0 % ❌ │
│                                              │  10000 │ 121.867 μs │ 137.568 μs │  -11.4 % ✅ │     165 │      110 │  +50.0 % ❌ │
│                                              │ 100000 │ 992.369 μs │ 978.683 μs │   +1.4 % ➖ │     165 │      110 │  +50.0 % ❌ │
│ powergrid → assemble                         │    100 │ 202.449 μs │ 196.598 μs │   +3.0 % ➖ │    1602 │     1602 │   +0.0 % ➖ │
│                                              │   1000 │   1.447 ms │   1.414 ms │   +2.3 % ➖ │   13883 │    13883 │   +0.0 % ➖ │
│                                              │  10000 │  16.081 ms │  16.132 ms │   -0.3 % ➖ │  144648 │   144648 │   +0.0 % ➖ │
│                                              │ 100000 │ 185.997 ms │ 191.618 ms │   -2.9 % ➖ │ 1449929 │  1449929 │   +0.0 % ➖ │
│ powergrid → seq → seq                        │    100 │   7.304 μs │   7.326 μs │   -0.3 % ➖ │         │          │   +0.0 % ➖ │
│                                              │   1000 │  73.157 μs │  73.168 μs │   -0.0 % ➖ │         │          │   +0.0 % ➖ │
│                                              │  10000 │ 747.972 μs │ 749.054 μs │   -0.1 % ➖ │         │          │   +0.0 % ➖ │
│                                              │ 100000 │   7.987 ms │   7.949 ms │   +0.5 % ➖ │         │          │   +0.0 % ➖ │
│ powergrid → ka → seq                         │    100 │  10.931 μs │  11.061 μs │   -1.2 % ➖ │      76 │       76 │   +0.0 % ➖ │
│                                              │   1000 │  77.706 μs │  77.646 μs │   +0.1 % ➖ │      77 │       77 │   +0.0 % ➖ │
│                                              │  10000 │ 514.283 μs │ 507.802 μs │   +1.3 % ➖ │     378 │      378 │   +0.0 % ➖ │
│                                              │ 100000 │   3.595 ms │   3.569 ms │   +0.7 % ➖ │    1346 │     1346 │   +0.0 % ➖ │
│ powergrid → poly → seq                       │    100 │   4.771 μs │   4.749 μs │   +0.5 % ➖ │       5 │        5 │   +0.0 % ➖ │
│                                              │   1000 │  33.473 μs │  33.172 μs │   +0.9 % ➖ │       5 │        5 │   +0.0 % ➖ │
│                                              │  10000 │ 322.504 μs │ 315.351 μs │   +2.3 % ➖ │       5 │        5 │   +0.0 % ➖ │
│                                              │ 100000 │   3.495 ms │   3.481 ms │   +0.4 % ➖ │       5 │        5 │   +0.0 % ➖ │
│ powergrid → thrd → seq                       │    100 │  24.936 μs │  22.723 μs │   +9.7 % ❌ │     165 │      110 │  +50.0 % ❌ │
│                                              │   1000 │  64.060 μs │  61.265 μs │   +4.6 % ➖ │     165 │      110 │  +50.0 % ❌ │
│                                              │  10000 │ 410.398 μs │ 364.333 μs │  +12.6 % ❌ │     165 │      110 │  +50.0 % ❌ │
│                                              │ 100000 │   3.478 ms │   3.294 ms │   +5.6 % ❌ │     165 │      110 │  +50.0 % ❌ │
│ powergrid → seq_buf → seq                    │    100 │   7.514 μs │   7.551 μs │   -0.5 % ➖ │         │          │   +0.0 % ➖ │
│                                              │   1000 │  75.431 μs │  74.970 μs │   +0.6 % ➖ │         │          │   +0.0 % ➖ │
│                                              │  10000 │ 768.920 μs │ 771.506 μs │   -0.3 % ➖ │         │          │   +0.0 % ➖ │
│                                              │ 100000 │   8.207 ms │   8.158 ms │   +0.6 % ➖ │         │          │   +0.0 % ➖ │
│ powergrid → ka_buf → seq                     │    100 │  11.026 μs │  10.986 μs │   +0.4 % ➖ │      76 │       76 │   +0.0 % ➖ │
│                                              │   1000 │  80.121 μs │  79.870 μs │   +0.3 % ➖ │      77 │       77 │   +0.0 % ➖ │
│                                              │  10000 │ 557.614 μs │ 538.312 μs │   +3.6 % ➖ │     378 │      378 │   +0.0 % ➖ │
│                                              │ 100000 │   3.819 ms │   3.781 ms │   +1.0 % ➖ │    1346 │     1346 │   +0.0 % ➖ │
│ powergrid → poly_buf → seq                   │    100 │   5.352 μs │   5.115 μs │   +4.6 % ➖ │       5 │        5 │   +0.0 % ➖ │
│                                              │   1000 │  36.698 μs │  35.557 μs │   +3.2 % ➖ │       5 │        5 │   +0.0 % ➖ │
│                                              │  10000 │ 375.836 μs │ 368.481 μs │   +2.0 % ➖ │       5 │        5 │   +0.0 % ➖ │
│                                              │ 100000 │   3.889 ms │   3.839 ms │   +1.3 % ➖ │       5 │        5 │   +0.0 % ➖ │
│ powergrid → poly_buf → ka                    │    100 │   6.309 μs │   6.407 μs │   -1.5 % ➖ │      15 │       15 │   +0.0 % ➖ │
│                                              │   1000 │  54.272 μs │  53.450 μs │   +1.5 % ➖ │      57 │       57 │   +0.0 % ➖ │
│                                              │  10000 │ 456.878 μs │ 454.062 μs │   +0.6 % ➖ │      57 │       57 │   +0.0 % ➖ │
│                                              │ 100000 │   5.041 ms │   5.028 ms │   +0.3 % ➖ │      57 │       57 │   +0.0 % ➖ │
│ powergrid → poly_buf → poly                  │    100 │   5.926 μs │   5.577 μs │   +6.3 % ❌ │       8 │        8 │   +0.0 % ➖ │
│                                              │   1000 │  39.303 μs │  39.624 μs │   -0.8 % ➖ │       8 │        8 │   +0.0 % ➖ │
│                                              │  10000 │ 383.218 μs │ 362.571 μs │   +5.7 % ❌ │       8 │        8 │   +0.0 % ➖ │
│                                              │ 100000 │   4.467 ms │   4.519 ms │   -1.2 % ➖ │       8 │        8 │   +0.0 % ➖ │
│ powergrid → poly_buf → thrd                  │    100 │  10.925 μs │  10.971 μs │   -0.4 % ➖ │      27 │       27 │   +0.0 % ➖ │
│                                              │   1000 │  48.961 μs │  48.020 μs │   +2.0 % ➖ │      27 │       27 │   +0.0 % ➖ │
│                                              │  10000 │ 437.339 μs │ 459.380 μs │   -4.8 % ➖ │      27 │       27 │   +0.0 % ➖ │
│                                              │ 100000 │   5.663 ms │   5.674 ms │   -0.2 % ➖ │      27 │       27 │   +0.0 % ➖ │
│ powergrid → poly_buf → sprs                  │    100 │   5.821 μs │   5.931 μs │   -1.9 % ➖ │       5 │        5 │   +0.0 % ➖ │
│                                              │   1000 │  43.461 μs │  43.030 μs │   +1.0 % ➖ │       5 │        5 │   +0.0 % ➖ │
│                                              │  10000 │ 433.942 μs │ 450.915 μs │   -3.8 % ➖ │       5 │        5 │   +0.0 % ➖ │
│                                              │ 100000 │   4.923 ms │   4.891 ms │   +0.7 % ➖ │       5 │        5 │   +0.0 % ➖ │
│ powergrid → thrd_buf → seq                   │    100 │  25.398 μs │  27.231 μs │   -6.7 % ✅ │     165 │      110 │  +50.0 % ❌ │
│                                              │   1000 │  70.132 μs │  65.393 μs │   +7.2 % ❌ │     165 │      110 │  +50.0 % ❌ │
│                                              │  10000 │ 430.759 μs │ 384.741 μs │  +12.0 % ❌ │     165 │      110 │  +50.0 % ❌ │
│                                              │ 100000 │   3.754 ms │   3.591 ms │   +4.5 % ➖ │     165 │      110 │  +50.0 % ❌ │
│ powergrid_inhomogeneous_pq → assemble        │    100 │ 591.838 μs │ 606.818 μs │   -2.5 % ➖ │    3258 │     3258 │   +0.0 % ➖ │
│                                              │   1000 │   6.147 ms │   6.830 ms │  -10.0 % ✅ │   32331 │    32331 │   +0.0 % ➖ │
│                                              │  10000 │ 231.352 ms │ 281.613 ms │  -17.8 % ✅ │  329662 │   329662 │   +0.0 % ➖ │
│                                              │ 100000 │   20.945 s │   26.391 s │  -20.6 % ✅ │ 3299886 │  3299886 │   +0.0 % ➖ │
│ powergrid_inhomogeneous_pq → seq → seq       │    100 │   9.351 μs │   9.307 μs │   +0.5 % ➖ │     102 │      102 │   +0.0 % ➖ │
│                                              │   1000 │  93.155 μs │  93.435 μs │   -0.3 % ➖ │    1002 │     1002 │   +0.0 % ➖ │
│                                              │  10000 │ 954.268 μs │ 953.368 μs │   +0.1 % ➖ │   10002 │    10002 │   +0.0 % ➖ │
│                                              │ 100000 │  10.172 ms │   9.884 ms │   +2.9 % ➖ │  100002 │   100002 │   +0.0 % ➖ │
│ powergrid_inhomogeneous_pq → ka → seq        │    100 │  72.776 μs │  72.365 μs │   +0.6 % ➖ │    1750 │     1750 │   +0.0 % ➖ │
│                                              │   1000 │ 718.546 μs │ 717.255 μs │   +0.2 % ➖ │   17051 │    17051 │   +0.0 % ➖ │
│                                              │  10000 │   7.277 ms │   7.281 ms │   -0.1 % ➖ │  170240 │   170240 │   +0.0 % ➖ │
│                                              │ 100000 │  81.026 ms │  78.000 ms │   +3.9 % ➖ │ 1700900 │  1700900 │   +0.0 % ➖ │
│ powergrid_inhomogeneous_pq → poly → seq      │    100 │   9.150 μs │   8.997 μs │   +1.7 % ➖ │     105 │      105 │   +0.0 % ➖ │
│                                              │   1000 │  82.615 μs │  80.461 μs │   +2.7 % ➖ │    1005 │     1005 │   +0.0 % ➖ │
│                                              │  10000 │ 826.769 μs │ 807.234 μs │   +2.4 % ➖ │   10005 │    10005 │   +0.0 % ➖ │
│                                              │ 100000 │   8.421 ms │   8.583 ms │   -1.9 % ➖ │  100005 │   100005 │   +0.0 % ➖ │
│ powergrid_inhomogeneous_pq → thrd → seq      │    100 │  24.846 μs │ 559.569 μs │  -95.6 % ✅ │     179 │     2368 │  -92.4 % ✅ │
│                                              │   1000 │  90.900 μs │   3.890 ms │  -97.7 % ✅ │     291 │    23068 │  -98.7 % ✅ │
│                                              │  10000 │ 509.745 μs │  40.430 ms │  -98.7 % ✅ │    1416 │   230068 │  -99.4 % ✅ │
│                                              │ 100000 │   4.471 ms │ 544.861 ms │  -99.2 % ✅ │   37666 │  2300068 │  -98.4 % ✅ │
│ powergrid_inhomogeneous_pq → seq_buf → seq   │    100 │   9.533 μs │   9.324 μs │   +2.2 % ➖ │     102 │      102 │   +0.0 % ➖ │
│                                              │   1000 │  95.599 μs │  95.559 μs │   +0.0 % ➖ │    1002 │     1002 │   +0.0 % ➖ │
│                                              │  10000 │ 978.202 μs │ 972.873 μs │   +0.5 % ➖ │   10002 │    10002 │   +0.0 % ➖ │
│                                              │ 100000 │  10.198 ms │  10.194 ms │   +0.0 % ➖ │  100002 │   100002 │   +0.0 % ➖ │
│ powergrid_inhomogeneous_pq → ka_buf → seq    │    100 │  74.209 μs │  73.458 μs │   +1.0 % ➖ │    1750 │     1750 │   +0.0 % ➖ │
│                                              │   1000 │ 726.821 μs │ 722.454 μs │   +0.6 % ➖ │   17051 │    17051 │   +0.0 % ➖ │
│                                              │  10000 │   7.352 ms │   7.317 ms │   +0.5 % ➖ │  170240 │   170240 │   +0.0 % ➖ │
│                                              │ 100000 │  80.744 ms │  80.407 ms │   +0.4 % ➖ │ 1700900 │  1700900 │   +0.0 % ➖ │
│ powergrid_inhomogeneous_pq → poly_buf → seq  │    100 │   9.383 μs │   8.920 μs │   +5.2 % ❌ │     105 │      105 │   +0.0 % ➖ │
│                                              │   1000 │  85.711 μs │  81.363 μs │   +5.3 % ❌ │    1005 │     1005 │   +0.0 % ➖ │
│                                              │  10000 │ 853.850 μs │ 828.032 μs │   +3.1 % ➖ │   10005 │    10005 │   +0.0 % ➖ │
│                                              │ 100000 │   8.902 ms │   8.884 ms │   +0.2 % ➖ │  100005 │   100005 │   +0.0 % ➖ │
│ powergrid_inhomogeneous_pq → poly_buf → ka   │    100 │  11.852 μs │  10.550 μs │  +12.3 % ❌ │     115 │      115 │   +0.0 % ➖ │
│                                              │   1000 │ 107.762 μs │ 103.033 μs │   +4.6 % ➖ │    1057 │     1057 │   +0.0 % ➖ │
│                                              │  10000 │ 987.451 μs │ 933.619 μs │   +5.8 % ❌ │   10057 │    10057 │   +0.0 % ➖ │
│                                              │ 100000 │  10.147 ms │  10.010 ms │   +1.4 % ➖ │  100057 │   100057 │   +0.0 % ➖ │
│ powergrid_inhomogeneous_pq → poly_buf → poly │    100 │  10.364 μs │  10.098 μs │   +2.6 % ➖ │     108 │      108 │   +0.0 % ➖ │
│                                              │   1000 │  89.487 μs │  86.883 μs │   +3.0 % ➖ │    1008 │     1008 │   +0.0 % ➖ │
│                                              │  10000 │ 899.927 μs │ 880.149 μs │   +2.2 % ➖ │   10008 │    10008 │   +0.0 % ➖ │
│                                              │ 100000 │  10.482 ms │  10.127 ms │   +3.5 % ➖ │  100008 │   100008 │   +0.0 % ➖ │
│ powergrid_inhomogeneous_pq → poly_buf → thrd │    100 │  15.379 μs │  15.189 μs │   +1.3 % ➖ │     127 │      127 │   +0.0 % ➖ │
│                                              │   1000 │  96.531 μs │ 100.498 μs │   -3.9 % ➖ │    1027 │     1027 │   +0.0 % ➖ │
│                                              │  10000 │ 945.672 μs │ 952.806 μs │   -0.7 % ➖ │   10027 │    10027 │   +0.0 % ➖ │
│                                              │ 100000 │  12.760 ms │  12.495 ms │   +2.1 % ➖ │  100027 │   100027 │   +0.0 % ➖ │
│ powergrid_inhomogeneous_pq → poly_buf → sprs │    100 │  11.302 μs │  10.956 μs │   +3.2 % ➖ │     105 │      105 │   +0.0 % ➖ │
│                                              │   1000 │  92.002 μs │  89.558 μs │   +2.7 % ➖ │    1005 │     1005 │   +0.0 % ➖ │
│                                              │  10000 │ 942.085 μs │ 908.352 μs │   +3.7 % ➖ │   10005 │    10005 │   +0.0 % ➖ │
│                                              │ 100000 │  10.210 ms │  10.021 ms │   +1.9 % ➖ │  100005 │   100005 │   +0.0 % ➖ │
│ powergrid_inhomogeneous_pq → thrd_buf → seq  │    100 │  24.706 μs │ 390.602 μs │  -93.7 % ✅ │     179 │     2368 │  -92.4 % ✅ │
│                                              │   1000 │  81.463 μs │   3.996 ms │  -98.0 % ✅ │     291 │    23068 │  -98.7 % ✅ │
│                                              │  10000 │ 559.909 μs │  39.663 ms │  -98.6 % ✅ │    1416 │   230068 │  -99.4 % ✅ │
│                                              │ 100000 │   5.164 ms │ 523.691 ms │  -99.0 % ✅ │   37666 │  2300068 │  -98.4 % ✅ │
└──────────────────────────────────────────────┴────────┴────────────┴────────────┴─────────────┴─────────┴──────────┴─────────────┘

https://github.com/JuliaDynamics/NetworkDynamics.jl/actions/runs/13966861932/artifacts/2787693311

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.

1 participant