Skip to content

Conversation

@hexaeder
Copy link
Member

This is start of an experimental implementation which introduces a new type of observables "aliases", which are just a * x where a is a constant and x is a normal state or parameter. If thats the case, we might be able to handle them better than with the quite general obs fun implementation

This is start of an experimental implementation which introduces a new
type of observables "aliases", which are just a * x where a is a
constant and x is a normal state or parameter. If thats the case, we
might be able to handle them better than with the quite general
obs fun implementation
@github-actions
Copy link
Contributor

Benchmark Results
┌──────────────────────────────────────────────┬────────┬────────────┬────────────┬────────────┬─────────┬──────────┬────────────┐
│ Key                                          │        │ Time       │            │            │ Allocs  │          │            │
│                                              │        │ target     │ baseline   │            │ target  │ baseline │            │
├──────────────────────────────────────────────┼────────┼────────────┼────────────┼────────────┼─────────┼──────────┼────────────┤
│ diffusion_static_edge → assemble             │    100 │ 555.880 μs │ 615.621 μs │  -9.7 % ✅ │    2874 │     2874 │  +0.0 % ➖ │
│                                              │    300 │   4.708 ms │   4.797 ms │  -1.8 % ➖ │   23084 │    23084 │  +0.0 % ➖ │
│                                              │   1000 │  65.854 ms │  65.948 ms │  -0.1 % ➖ │  251289 │   251289 │  +0.0 % ➖ │
│                                              │   3000 │ 964.917 ms │ 936.324 ms │  +3.1 % ➖ │ 2253289 │  2253289 │  +0.0 % ➖ │
│ diffusion_static_edge → seq → seq            │    100 │  11.672 μs │  11.502 μs │  +1.5 % ➖ │         │          │  +0.0 % ➖ │
│                                              │    300 │ 116.398 μs │ 115.667 μs │  +0.6 % ➖ │         │          │  +0.0 % ➖ │
│                                              │   1000 │   1.373 ms │   1.361 ms │  +0.8 % ➖ │         │          │  +0.0 % ➖ │
│                                              │   3000 │  13.542 ms │  13.777 ms │  -1.7 % ➖ │         │          │  +0.0 % ➖ │
│ diffusion_static_edge → ka → seq             │    100 │  20.849 μs │  21.340 μs │  -2.3 % ➖ │      87 │       87 │  +0.0 % ➖ │
│                                              │    300 │ 139.652 μs │ 143.338 μs │  -2.6 % ➖ │     173 │      173 │  +0.0 % ➖ │
│                                              │   1000 │   1.264 ms │   1.305 ms │  -3.2 % ➖ │    1067 │     1067 │  +0.0 % ➖ │
│                                              │   3000 │  13.033 ms │  12.717 ms │  +2.5 % ➖ │    8958 │     8958 │  +0.0 % ➖ │
│ diffusion_static_edge → poly → seq           │    100 │  12.298 μs │  12.569 μs │  -2.2 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                              │    300 │ 108.413 μs │ 109.234 μs │  -0.8 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                              │   1000 │   1.215 ms │   1.225 ms │  -0.8 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                              │   3000 │  12.445 ms │  13.028 ms │  -4.5 % ➖ │       3 │        3 │  +0.0 % ➖ │
│ diffusion_static_edge → thrd → seq           │    100 │  20.007 μs │  20.098 μs │  -0.5 % ➖ │      66 │       66 │  +0.0 % ➖ │
│                                              │    300 │ 126.917 μs │ 126.818 μs │  +0.1 % ➖ │      66 │       66 │  +0.0 % ➖ │
│                                              │   1000 │   1.288 ms │   1.298 ms │  -0.8 % ➖ │      66 │       66 │  +0.0 % ➖ │
│                                              │   3000 │  12.279 ms │  12.270 ms │  +0.1 % ➖ │      66 │       66 │  +0.0 % ➖ │
│ diffusion_static_edge → seq_buf → seq        │    100 │  13.976 μs │  13.791 μs │  +1.3 % ➖ │         │          │  +0.0 % ➖ │
│                                              │    300 │ 138.780 μs │ 137.588 μs │  +0.9 % ➖ │         │          │  +0.0 % ➖ │
│                                              │   1000 │   1.612 ms │   1.603 ms │  +0.6 % ➖ │         │          │  +0.0 % ➖ │
│                                              │   3000 │  16.753 ms │  16.241 ms │  +3.2 % ➖ │         │          │  +0.0 % ➖ │
│ diffusion_static_edge → ka_buf → seq         │    100 │  23.123 μs │  27.311 μs │ -15.3 % ✅ │      87 │       87 │  +0.0 % ➖ │
│                                              │    300 │ 158.857 μs │ 182.301 μs │ -12.9 % ✅ │     173 │      173 │  +0.0 % ➖ │
│                                              │   1000 │   1.659 ms │   1.681 ms │  -1.4 % ➖ │    1067 │     1067 │  +0.0 % ➖ │
│                                              │   3000 │  16.414 ms │  15.814 ms │  +3.8 % ➖ │    8958 │     8958 │  +0.0 % ➖ │
│ diffusion_static_edge → poly_buf → seq       │    100 │  18.043 μs │  18.194 μs │  -0.8 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                              │    300 │ 161.122 μs │ 159.899 μs │  +0.8 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                              │   1000 │   1.799 ms │   1.779 ms │  +1.1 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                              │   3000 │  18.053 ms │  17.538 ms │  +2.9 % ➖ │       3 │        3 │  +0.0 % ➖ │
│ diffusion_static_edge → poly_buf → ka        │    100 │ 150.742 μs │ 150.762 μs │  -0.0 % ➖ │      56 │       56 │  +0.0 % ➖ │
│                                              │    300 │ 382.716 μs │ 382.806 μs │  -0.0 % ➖ │      56 │       56 │  +0.0 % ➖ │
│                                              │   1000 │   3.073 ms │   3.050 ms │  +0.8 % ➖ │      56 │       56 │  +0.0 % ➖ │
│                                              │   3000 │  30.140 ms │  29.691 ms │  +1.5 % ➖ │      57 │       57 │  +0.0 % ➖ │
│ diffusion_static_edge → poly_buf → poly      │    100 │  12.964 μs │  14.186 μs │  -8.6 % ✅ │       6 │        6 │  +0.0 % ➖ │
│                                              │    300 │  98.754 μs │ 109.425 μs │  -9.8 % ✅ │       6 │        6 │  +0.0 % ➖ │
│                                              │   1000 │   1.060 ms │   1.132 ms │  -6.4 % ✅ │       6 │        6 │  +0.0 % ➖ │
│                                              │   3000 │  10.847 ms │  11.511 ms │  -5.8 % ✅ │       6 │        6 │  +0.0 % ➖ │
│ diffusion_static_edge → poly_buf → thrd      │    100 │ 130.364 μs │ 130.945 μs │  -0.4 % ➖ │      25 │       25 │  +0.0 % ➖ │
│                                              │    300 │ 241.903 μs │ 241.952 μs │  -0.0 % ➖ │      25 │       25 │  +0.0 % ➖ │
│                                              │   1000 │   1.594 ms │   1.575 ms │  +1.2 % ➖ │      25 │       25 │  +0.0 % ➖ │
│                                              │   3000 │  14.407 ms │  14.052 ms │  +2.5 % ➖ │      25 │       25 │  +0.0 % ➖ │
│ diffusion_static_edge → poly_buf → sprs      │    100 │  24.195 μs │  24.416 μs │  -0.9 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                              │    300 │ 209.202 μs │ 209.652 μs │  -0.2 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                              │   1000 │   2.373 ms │   2.346 ms │  +1.1 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                              │   3000 │  22.575 ms │  22.778 ms │  -0.9 % ➖ │       3 │        3 │  +0.0 % ➖ │
│ diffusion_static_edge → thrd_buf → seq       │    100 │  27.902 μs │  29.114 μs │  -4.2 % ➖ │      66 │       66 │  +0.0 % ➖ │
│                                              │    300 │ 171.961 μs │ 196.779 μs │ -12.6 % ✅ │      66 │       66 │  +0.0 % ➖ │
│                                              │   1000 │   1.677 ms │   1.706 ms │  -1.7 % ➖ │      66 │       66 │  +0.0 % ➖ │
│                                              │   3000 │  15.856 ms │  15.603 ms │  +1.6 % ➖ │      66 │       66 │  +0.0 % ➖ │
│ diffusion_ode_edge → assemble                │    100 │ 543.757 μs │ 538.337 μs │  +1.0 % ➖ │    2883 │     2883 │  +0.0 % ➖ │
│                                              │    300 │   4.591 ms │   4.687 ms │  -2.0 % ➖ │   23092 │    23092 │  +0.0 % ➖ │
│                                              │   1000 │  69.468 ms │  93.113 ms │ -25.4 % ✅ │  251295 │   251295 │  +0.0 % ➖ │
│                                              │   3000 │ 996.410 ms │ 974.239 ms │  +2.3 % ➖ │ 2253295 │  2253295 │  +0.0 % ➖ │
│ diffusion_ode_edge → seq → seq               │    100 │  40.586 μs │  40.696 μs │  -0.3 % ➖ │         │          │  +0.0 % ➖ │
│                                              │    300 │ 384.870 μs │ 386.023 μs │  -0.3 % ➖ │         │          │  +0.0 % ➖ │
│                                              │   1000 │   4.468 ms │   4.608 ms │  -3.0 % ➖ │         │          │  +0.0 % ➖ │
│                                              │   3000 │  41.140 ms │  41.238 ms │  -0.2 % ➖ │         │          │  +0.0 % ➖ │
│ diffusion_ode_edge → ka → seq                │    100 │  59.050 μs │  59.391 μs │  -0.6 % ➖ │     140 │      140 │  +0.0 % ➖ │
│                                              │    300 │ 317.904 μs │ 311.173 μs │  +2.2 % ➖ │     293 │      293 │  +0.0 % ➖ │
│                                              │   1000 │   2.899 ms │   3.001 ms │  -3.4 % ➖ │    1856 │     1856 │  +0.0 % ➖ │
│                                              │   3000 │  26.942 ms │  26.808 ms │  +0.5 % ➖ │   15607 │    15607 │  +0.0 % ➖ │
│ diffusion_ode_edge → poly → seq              │    100 │  27.592 μs │  27.271 μs │  +1.2 % ➖ │       4 │        4 │  +0.0 % ➖ │
│                                              │    300 │ 243.756 μs │ 242.884 μs │  +0.4 % ➖ │       4 │        4 │  +0.0 % ➖ │
│                                              │   1000 │   2.748 ms │   2.820 ms │  -2.6 % ➖ │       4 │        4 │  +0.0 % ➖ │
│                                              │   3000 │  26.510 ms │  26.558 ms │  -0.2 % ➖ │       4 │        4 │  +0.0 % ➖ │
│ diffusion_ode_edge → thrd → seq              │    100 │  51.426 μs │  52.599 μs │  -2.2 % ➖ │      88 │       88 │  +0.0 % ➖ │
│                                              │    300 │ 378.990 μs │ 391.129 μs │  -3.1 % ➖ │      88 │       88 │  +0.0 % ➖ │
│                                              │   1000 │   2.937 ms │   3.110 ms │  -5.6 % ✅ │      88 │       88 │  +0.0 % ➖ │
│                                              │   3000 │  26.519 ms │  27.350 ms │  -3.0 % ➖ │      88 │       88 │  +0.0 % ➖ │
│ diffusion_ode_edge → seq_buf → seq           │    100 │  39.574 μs │  39.715 μs │  -0.4 % ➖ │         │          │  +0.0 % ➖ │
│                                              │    300 │ 376.946 μs │ 377.767 μs │  -0.2 % ➖ │         │          │  +0.0 % ➖ │
│                                              │   1000 │   4.303 ms │   4.331 ms │  -0.6 % ➖ │         │          │  +0.0 % ➖ │
│                                              │   3000 │  40.585 ms │  40.685 ms │  -0.2 % ➖ │         │          │  +0.0 % ➖ │
│ diffusion_ode_edge → ka_buf → seq            │    100 │  63.179 μs │  64.060 μs │  -1.4 % ➖ │     140 │      140 │  +0.0 % ➖ │
│                                              │    300 │ 365.474 μs │ 361.207 μs │  +1.2 % ➖ │     293 │      293 │  +0.0 % ➖ │
│                                              │   1000 │   3.273 ms │   3.388 ms │  -3.4 % ➖ │    1856 │     1856 │  +0.0 % ➖ │
│                                              │   3000 │  29.901 ms │  30.377 ms │  -1.6 % ➖ │   15607 │    15607 │  +0.0 % ➖ │
│ diffusion_ode_edge → poly_buf → seq          │    100 │  31.790 μs │  32.360 μs │  -1.8 % ➖ │       4 │        4 │  +0.0 % ➖ │
│                                              │    300 │ 283.100 μs │ 288.790 μs │  -2.0 % ➖ │       4 │        4 │  +0.0 % ➖ │
│                                              │   1000 │   3.196 ms │   3.379 ms │  -5.4 % ✅ │       4 │        4 │  +0.0 % ➖ │
│                                              │   3000 │  30.782 ms │  31.769 ms │  -3.1 % ➖ │       4 │        4 │  +0.0 % ➖ │
│ diffusion_ode_edge → poly_buf → ka           │    100 │ 164.327 μs │ 164.237 μs │  +0.1 % ➖ │      57 │       57 │  +0.0 % ➖ │
│                                              │    300 │ 498.232 μs │ 507.610 μs │  -1.8 % ➖ │      57 │       57 │  +0.0 % ➖ │
│                                              │   1000 │   4.357 ms │   4.719 ms │  -7.7 % ✅ │      57 │       57 │  +0.0 % ➖ │
│                                              │   3000 │  42.665 ms │  42.988 ms │  -0.8 % ➖ │      58 │       58 │  +0.0 % ➖ │
│ diffusion_ode_edge → poly_buf → poly         │    100 │  26.349 μs │  26.299 μs │  +0.2 % ➖ │       7 │        7 │  +0.0 % ➖ │
│                                              │    300 │ 227.957 μs │ 307.626 μs │ -25.9 % ✅ │       7 │        7 │  +0.0 % ➖ │
│                                              │   1000 │   2.476 ms │   3.217 ms │ -23.0 % ✅ │       7 │        7 │  +0.0 % ➖ │
│                                              │   3000 │  24.390 ms │  24.086 ms │  +1.3 % ➖ │       7 │        7 │  +0.0 % ➖ │
│ diffusion_ode_edge → poly_buf → thrd         │    100 │ 144.270 μs │ 144.090 μs │  +0.1 % ➖ │      26 │       26 │  +0.0 % ➖ │
│                                              │    300 │ 362.539 μs │ 420.847 μs │ -13.9 % ✅ │      26 │       26 │  +0.0 % ➖ │
│                                              │   1000 │   2.980 ms │   3.321 ms │ -10.3 % ✅ │      26 │       26 │  +0.0 % ➖ │
│                                              │   3000 │  28.408 ms │  27.886 ms │  +1.9 % ➖ │      26 │       26 │  +0.0 % ➖ │
│ diffusion_ode_edge → poly_buf → sprs         │    100 │  38.292 μs │  37.670 μs │  +1.7 % ➖ │       4 │        4 │  +0.0 % ➖ │
│                                              │    300 │ 334.857 μs │ 373.389 μs │ -10.3 % ✅ │       4 │        4 │  +0.0 % ➖ │
│                                              │   1000 │   3.772 ms │   3.971 ms │  -5.0 % ➖ │       4 │        4 │  +0.0 % ➖ │
│                                              │   3000 │  35.418 ms │  35.047 ms │  +1.1 % ➖ │       4 │        4 │  +0.0 % ➖ │
│ diffusion_ode_edge → thrd_buf → seq          │    100 │  56.095 μs │  54.843 μs │  +2.3 % ➖ │      96 │       88 │  +9.1 % ❌ │
│                                              │    300 │ 419.615 μs │ 420.416 μs │  -0.2 % ➖ │      96 │       88 │  +9.1 % ❌ │
│                                              │   1000 │   3.295 ms │   3.338 ms │  -1.3 % ➖ │      96 │       88 │  +9.1 % ❌ │
│                                              │   3000 │  29.453 ms │  30.340 ms │  -2.9 % ➖ │      96 │       88 │  +9.1 % ❌ │
│ kuramoto_homogeneous → assemble              │    100 │  68.768 μs │  70.923 μs │  -3.0 % ➖ │     464 │      464 │  +0.0 % ➖ │
│                                              │   1000 │ 723.093 μs │ 721.641 μs │  +0.2 % ➖ │    2293 │     2293 │  +0.0 % ➖ │
│                                              │  10000 │   4.999 ms │   4.933 ms │  +1.3 % ➖ │   20293 │    20293 │  +0.0 % ➖ │
│                                              │ 100000 │  44.731 ms │  41.878 ms │  +6.8 % ❌ │  200293 │   200293 │  +0.0 % ➖ │
│ kuramoto_homogeneous → seq → seq             │    100 │   1.063 μs │   1.078 μs │  -1.4 % ➖ │         │          │  +0.0 % ➖ │
│                                              │   1000 │  10.620 μs │  10.730 μs │  -1.0 % ➖ │         │          │  +0.0 % ➖ │
│                                              │  10000 │ 114.795 μs │ 118.592 μs │  -3.2 % ➖ │         │          │  +0.0 % ➖ │
│                                              │ 100000 │   1.515 ms │   1.598 ms │  -5.2 % ✅ │         │          │  +0.0 % ➖ │
│ kuramoto_homogeneous → ka → seq              │    100 │   3.003 μs │   3.227 μs │  -6.9 % ✅ │      46 │       46 │  +0.0 % ➖ │
│                                              │   1000 │  12.624 μs │  13.490 μs │  -6.4 % ✅ │      49 │       49 │  +0.0 % ➖ │
│                                              │  10000 │ 169.577 μs │ 170.088 μs │  -0.3 % ➖ │     274 │      274 │  +0.0 % ➖ │
│                                              │ 100000 │   1.166 ms │   1.158 ms │  +0.7 % ➖ │    1242 │     1242 │  +0.0 % ➖ │
│ kuramoto_homogeneous → poly → seq            │    100 │   1.937 μs │   1.870 μs │  +3.6 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                              │   1000 │  10.304 μs │  10.410 μs │  -1.0 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                              │  10000 │  96.470 μs │  99.967 μs │  -3.5 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                              │ 100000 │   1.103 ms │   1.109 ms │  -0.6 % ➖ │       3 │        3 │  +0.0 % ➖ │
│ kuramoto_homogeneous → thrd → seq            │    100 │   9.242 μs │  10.676 μs │ -13.4 % ✅ │      66 │       74 │ -10.8 % ✅ │
│                                              │   1000 │  21.220 μs │  21.240 μs │  -0.1 % ➖ │      66 │       74 │ -10.8 % ✅ │
│                                              │  10000 │ 122.239 μs │ 126.227 μs │  -3.2 % ➖ │      66 │       74 │ -10.8 % ✅ │
│                                              │ 100000 │   1.116 ms │   1.147 ms │  -2.6 % ➖ │      66 │       74 │ -10.8 % ✅ │
│ kuramoto_homogeneous → seq_buf → seq         │    100 │   1.100 μs │   1.121 μs │  -1.8 % ➖ │         │          │  +0.0 % ➖ │
│                                              │   1000 │  10.851 μs │  10.995 μs │  -1.3 % ➖ │         │          │  +0.0 % ➖ │
│                                              │  10000 │ 115.236 μs │ 117.741 μs │  -2.1 % ➖ │         │          │  +0.0 % ➖ │
│                                              │ 100000 │   1.363 ms │   1.377 ms │  -1.0 % ➖ │         │          │  +0.0 % ➖ │
│ kuramoto_homogeneous → ka_buf → seq          │    100 │   3.032 μs │   3.065 μs │  -1.1 % ➖ │      46 │       46 │  +0.0 % ➖ │
│                                              │   1000 │  13.010 μs │  12.744 μs │  +2.1 % ➖ │      49 │       49 │  +0.0 % ➖ │
│                                              │  10000 │ 204.222 μs │ 197.379 μs │  +3.5 % ➖ │     274 │      274 │  +0.0 % ➖ │
│                                              │ 100000 │   1.305 ms │   1.322 ms │  -1.3 % ➖ │    1242 │     1242 │  +0.0 % ➖ │
│ kuramoto_homogeneous → poly_buf → seq        │    100 │   2.109 μs │   2.002 μs │  +5.3 % ❌ │       3 │        3 │  +0.0 % ➖ │
│                                              │   1000 │  11.752 μs │  11.828 μs │  -0.6 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                              │  10000 │ 113.833 μs │ 115.426 μs │  -1.4 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                              │ 100000 │   1.343 ms │   1.349 ms │  -0.5 % ➖ │       3 │        3 │  +0.0 % ➖ │
│ kuramoto_homogeneous → poly_buf → ka         │    100 │   3.076 μs │   2.886 μs │  +6.6 % ❌ │      13 │       13 │  +0.0 % ➖ │
│                                              │   1000 │ 134.672 μs │ 135.313 μs │  -0.5 % ➖ │      37 │       37 │  +0.0 % ➖ │
│                                              │  10000 │ 295.112 μs │ 293.679 μs │  +0.5 % ➖ │      56 │       56 │  +0.0 % ➖ │
│                                              │ 100000 │   2.371 ms │   2.110 ms │ +12.4 % ❌ │      56 │       56 │  +0.0 % ➖ │
│ kuramoto_homogeneous → poly_buf → poly       │    100 │   2.776 μs │   2.648 μs │  +4.8 % ➖ │       6 │        6 │  +0.0 % ➖ │
│                                              │   1000 │  13.846 μs │  13.385 μs │  +3.4 % ➖ │       6 │        6 │  +0.0 % ➖ │
│                                              │  10000 │ 131.956 μs │ 132.709 μs │  -0.6 % ➖ │       6 │        6 │  +0.0 % ➖ │
│                                              │ 100000 │   1.637 ms │   1.615 ms │  +1.4 % ➖ │       6 │        6 │  +0.0 % ➖ │
│ kuramoto_homogeneous → poly_buf → thrd       │    100 │ 116.768 μs │ 116.638 μs │  +0.1 % ➖ │      25 │       25 │  +0.0 % ➖ │
│                                              │   1000 │ 130.043 μs │ 129.613 μs │  +0.3 % ➖ │      25 │       25 │  +0.0 % ➖ │
│                                              │  10000 │ 263.242 μs │ 259.014 μs │  +1.6 % ➖ │      25 │       25 │  +0.0 % ➖ │
│                                              │ 100000 │   2.770 ms │   2.523 ms │  +9.8 % ❌ │      25 │       25 │  +0.0 % ➖ │
│ kuramoto_homogeneous → poly_buf → sprs       │    100 │   2.521 μs │   2.456 μs │  +2.7 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                              │   1000 │  16.361 μs │  16.601 μs │  -1.4 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                              │  10000 │ 162.343 μs │ 165.279 μs │  -1.8 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                              │ 100000 │   1.907 ms │   1.930 ms │  -1.2 % ➖ │       3 │        3 │  +0.0 % ➖ │
│ kuramoto_homogeneous → thrd_buf → seq        │    100 │  10.550 μs │  10.951 μs │  -3.7 % ➖ │      66 │       74 │ -10.8 % ✅ │
│                                              │   1000 │  22.132 μs │  22.983 μs │  -3.7 % ➖ │      66 │       74 │ -10.8 % ✅ │
│                                              │  10000 │ 151.263 μs │ 156.703 μs │  -3.5 % ➖ │      66 │       74 │ -10.8 % ✅ │
│                                              │ 100000 │   1.291 ms │   1.292 ms │  -0.1 % ➖ │      66 │       74 │ -10.8 % ✅ │
│ kuramoto_heterogeneous → assemble            │    100 │ 180.297 μs │ 150.913 μs │ +19.5 % ❌ │     933 │      933 │  +0.0 % ➖ │
│                                              │   1000 │   1.429 ms │   1.368 ms │  +4.5 % ➖ │    6380 │     6380 │  +0.0 % ➖ │
│                                              │  10000 │  14.185 ms │  13.417 ms │  +5.7 % ❌ │   60409 │    60409 │  +0.0 % ➖ │
│                                              │ 100000 │ 123.532 ms │ 115.723 ms │  +6.7 % ❌ │  600434 │   600434 │  +0.0 % ➖ │
│ kuramoto_heterogeneous → seq → seq           │    100 │   1.038 μs │   1.074 μs │  -3.3 % ➖ │         │          │  +0.0 % ➖ │
│                                              │   1000 │  10.380 μs │  10.514 μs │  -1.3 % ➖ │         │          │  +0.0 % ➖ │
│                                              │  10000 │ 112.049 μs │ 113.913 μs │  -1.6 % ➖ │         │          │  +0.0 % ➖ │
│                                              │ 100000 │   1.482 ms │   1.538 ms │  -3.7 % ➖ │         │          │  +0.0 % ➖ │
│ kuramoto_heterogeneous → ka → seq            │    100 │   4.440 μs │   4.485 μs │  -1.0 % ➖ │      76 │       76 │  +0.0 % ➖ │
│                                              │   1000 │  14.312 μs │  14.262 μs │  +0.4 % ➖ │      77 │       77 │  +0.0 % ➖ │
│                                              │  10000 │ 195.055 μs │ 200.005 μs │  -2.5 % ➖ │     383 │      383 │  +0.0 % ➖ │
│                                              │ 100000 │   1.221 ms │   1.243 ms │  -1.8 % ➖ │    1351 │     1351 │  +0.0 % ➖ │
│ kuramoto_heterogeneous → poly → seq          │    100 │   2.480 μs │   2.446 μs │  +1.4 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                              │   1000 │  10.890 μs │  10.921 μs │  -0.3 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                              │  10000 │  95.850 μs │  98.915 μs │  -3.1 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                              │ 100000 │   1.115 ms │   1.103 ms │  +1.1 % ➖ │       5 │        5 │  +0.0 % ➖ │
│ kuramoto_heterogeneous → thrd → seq          │    100 │  16.771 μs │  16.832 μs │  -0.4 % ➖ │     110 │      118 │  -6.8 % ✅ │
│                                              │   1000 │  29.966 μs │  28.844 μs │  +3.9 % ➖ │     110 │      118 │  -6.8 % ✅ │
│                                              │  10000 │ 148.859 μs │ 146.354 μs │  +1.7 % ➖ │     110 │      118 │  -6.8 % ✅ │
│                                              │ 100000 │   1.130 ms │   1.112 ms │  +1.6 % ➖ │     110 │      118 │  -6.8 % ✅ │
│ kuramoto_heterogeneous → seq_buf → seq       │    100 │   1.076 μs │   1.103 μs │  -2.4 % ➖ │         │          │  +0.0 % ➖ │
│                                              │   1000 │  10.625 μs │  10.785 μs │  -1.5 % ➖ │         │          │  +0.0 % ➖ │
│                                              │  10000 │ 112.660 μs │ 113.002 μs │  -0.3 % ➖ │         │          │  +0.0 % ➖ │
│                                              │ 100000 │   1.330 ms │   1.345 ms │  -1.1 % ➖ │         │          │  +0.0 % ➖ │
│ kuramoto_heterogeneous → ka_buf → seq        │    100 │   4.508 μs │   4.514 μs │  -0.1 % ➖ │      76 │       76 │  +0.0 % ➖ │
│                                              │   1000 │  14.226 μs │  14.207 μs │  +0.1 % ➖ │      77 │       77 │  +0.0 % ➖ │
│                                              │  10000 │ 223.769 μs │ 240.681 μs │  -7.0 % ✅ │     383 │      383 │  +0.0 % ➖ │
│                                              │ 100000 │   1.345 ms │   1.318 ms │  +2.0 % ➖ │    1351 │     1351 │  +0.0 % ➖ │
│ kuramoto_heterogeneous → poly_buf → seq      │    100 │   2.709 μs │   2.625 μs │  +3.2 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                              │   1000 │  12.949 μs │  12.659 μs │  +2.3 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                              │  10000 │ 114.614 μs │ 115.787 μs │  -1.0 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                              │ 100000 │   1.319 ms │   1.346 ms │  -2.0 % ➖ │       5 │        5 │  +0.0 % ➖ │
│ kuramoto_heterogeneous → poly_buf → ka       │    100 │   3.537 μs │   3.527 μs │  +0.3 % ➖ │      15 │       15 │  +0.0 % ➖ │
│                                              │   1000 │ 136.616 μs │ 136.947 μs │  -0.2 % ➖ │      39 │       39 │  +0.0 % ➖ │
│                                              │  10000 │ 296.455 μs │ 293.639 μs │  +1.0 % ➖ │      58 │       58 │  +0.0 % ➖ │
│                                              │ 100000 │   2.091 ms │   2.106 ms │  -0.7 % ➖ │      58 │       58 │  +0.0 % ➖ │
│ kuramoto_heterogeneous → poly_buf → poly     │    100 │   3.372 μs │   3.136 μs │  +7.5 % ❌ │       8 │        8 │  +0.0 % ➖ │
│                                              │   1000 │  14.477 μs │  13.926 μs │  +4.0 % ➖ │       8 │        8 │  +0.0 % ➖ │
│                                              │  10000 │ 130.264 μs │ 134.201 μs │  -2.9 % ➖ │       8 │        8 │  +0.0 % ➖ │
│                                              │ 100000 │   1.760 ms │   1.644 ms │  +7.1 % ❌ │       8 │        8 │  +0.0 % ➖ │
│ kuramoto_heterogeneous → poly_buf → thrd     │    100 │ 197.269 μs │ 122.118 μs │ +61.5 % ❌ │      27 │       27 │  +0.0 % ➖ │
│                                              │   1000 │ 130.975 μs │ 130.113 μs │  +0.7 % ➖ │      27 │       27 │  +0.0 % ➖ │
│                                              │  10000 │ 271.799 μs │ 267.099 μs │  +1.8 % ➖ │      27 │       27 │  +0.0 % ➖ │
│                                              │ 100000 │   2.148 ms │   2.407 ms │ -10.8 % ✅ │      27 │       27 │  +0.0 % ➖ │
│ kuramoto_heterogeneous → poly_buf → sprs     │    100 │   3.153 μs │   3.078 μs │  +2.4 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                              │   1000 │  17.142 μs │  16.781 μs │  +2.2 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                              │  10000 │ 162.895 μs │ 163.737 μs │  -0.5 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                              │ 100000 │   1.926 ms │   1.908 ms │  +1.0 % ➖ │       5 │        5 │  +0.0 % ➖ │
│ kuramoto_heterogeneous → thrd_buf → seq      │    100 │  17.362 μs │  17.373 μs │  -0.1 % ➖ │     110 │      118 │  -6.8 % ✅ │
│                                              │   1000 │  30.878 μs │  28.473 μs │  +8.4 % ❌ │     110 │      118 │  -6.8 % ✅ │
│                                              │  10000 │ 142.517 μs │ 150.311 μs │  -5.2 % ✅ │     110 │      118 │  -6.8 % ✅ │
│                                              │ 100000 │   1.291 ms │   1.284 ms │  +0.5 % ➖ │     110 │      118 │  -6.8 % ✅ │
│ powergrid → assemble                         │    100 │ 263.323 μs │ 256.410 μs │  +2.7 % ➖ │    1465 │     1465 │  +0.0 % ➖ │
│                                              │   1000 │   1.932 ms │   1.876 ms │  +3.0 % ➖ │   11657 │    11657 │  +0.0 % ➖ │
│                                              │  10000 │  16.996 ms │  16.142 ms │  +5.3 % ❌ │  115274 │   115274 │  +0.0 % ➖ │
│                                              │ 100000 │ 216.152 ms │ 208.349 ms │  +3.7 % ➖ │ 1150391 │  1150391 │  +0.0 % ➖ │
│ powergrid → seq → seq                        │    100 │   7.138 μs │   6.963 μs │  +2.5 % ➖ │         │          │  +0.0 % ➖ │
│                                              │   1000 │  71.664 μs │  69.650 μs │  +2.9 % ➖ │         │          │  +0.0 % ➖ │
│                                              │  10000 │ 733.342 μs │ 712.434 μs │  +2.9 % ➖ │         │          │  +0.0 % ➖ │
│                                              │ 100000 │   7.985 ms │   7.700 ms │  +3.7 % ➖ │         │          │  +0.0 % ➖ │
│ powergrid → ka → seq                         │    100 │  10.700 μs │  10.410 μs │  +2.8 % ➖ │      76 │       76 │  +0.0 % ➖ │
│                                              │   1000 │  75.301 μs │  73.678 μs │  +2.2 % ➖ │      77 │       77 │  +0.0 % ➖ │
│                                              │  10000 │ 567.802 μs │ 535.872 μs │  +6.0 % ❌ │     383 │      383 │  +0.0 % ➖ │
│                                              │ 100000 │   3.654 ms │   3.467 ms │  +5.4 % ❌ │    1351 │     1351 │  +0.0 % ➖ │
│ powergrid → poly → seq                       │    100 │   4.793 μs │   4.627 μs │  +3.6 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                              │   1000 │  32.851 μs │  32.931 μs │  -0.2 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                              │  10000 │ 317.674 μs │ 318.346 μs │  -0.2 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                              │ 100000 │   3.443 ms │   3.404 ms │  +1.1 % ➖ │       5 │        5 │  +0.0 % ➖ │
│ powergrid → thrd → seq                       │    100 │  20.569 μs │  20.819 μs │  -1.2 % ➖ │     110 │      110 │  +0.0 % ➖ │
│                                              │   1000 │  66.334 μs │  68.699 μs │  -3.4 % ➖ │     110 │      110 │  +0.0 % ➖ │
│                                              │  10000 │ 552.283 μs │ 543.157 μs │  +1.7 % ➖ │     110 │      110 │  +0.0 % ➖ │
│                                              │ 100000 │   3.572 ms │   3.533 ms │  +1.1 % ➖ │     110 │      110 │  +0.0 % ➖ │
│ powergrid → seq_buf → seq                    │    100 │   7.286 μs │   7.346 μs │  -0.8 % ➖ │         │          │  +0.0 % ➖ │
│                                              │   1000 │  73.588 μs │  73.618 μs │  -0.0 % ➖ │         │          │  +0.0 % ➖ │
│                                              │  10000 │ 750.634 μs │ 752.648 μs │  -0.3 % ➖ │         │          │  +0.0 % ➖ │
│                                              │ 100000 │   8.318 ms │   8.375 ms │  -0.7 % ➖ │         │          │  +0.0 % ➖ │
│ powergrid → ka_buf → seq                     │    100 │  11.021 μs │  10.821 μs │  +1.8 % ➖ │      76 │       76 │  +0.0 % ➖ │
│                                              │   1000 │  78.537 μs │  77.655 μs │  +1.1 % ➖ │      77 │       77 │  +0.0 % ➖ │
│                                              │  10000 │ 617.705 μs │ 620.712 μs │  -0.5 % ➖ │     383 │      383 │  +0.0 % ➖ │
│                                              │ 100000 │   4.202 ms │   4.077 ms │  +3.1 % ➖ │    1351 │     1351 │  +0.0 % ➖ │
│ powergrid → poly_buf → seq                   │    100 │   5.344 μs │   5.314 μs │  +0.6 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                              │   1000 │  38.001 μs │  38.092 μs │  -0.2 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                              │  10000 │ 370.664 μs │ 367.277 μs │  +0.9 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                              │ 100000 │   4.270 ms │   4.142 ms │  +3.1 % ➖ │       5 │        5 │  +0.0 % ➖ │
│ powergrid → poly_buf → ka                    │    100 │   6.703 μs │   6.723 μs │  -0.3 % ➖ │      15 │       15 │  +0.0 % ➖ │
│                                              │   1000 │ 168.976 μs │ 169.337 μs │  -0.2 % ➖ │      58 │       58 │  +0.0 % ➖ │
│                                              │  10000 │ 617.014 μs │ 609.570 μs │  +1.2 % ➖ │      58 │       58 │  +0.0 % ➖ │
│                                              │ 100000 │   5.584 ms │   5.410 ms │  +3.2 % ➖ │      58 │       58 │  +0.0 % ➖ │
│ powergrid → poly_buf → poly                  │    100 │   6.069 μs │   5.966 μs │  +1.7 % ➖ │       8 │        8 │  +0.0 % ➖ │
│                                              │   1000 │  39.664 μs │  39.494 μs │  +0.4 % ➖ │       8 │        8 │  +0.0 % ➖ │
│                                              │  10000 │ 388.677 μs │ 392.053 μs │  -0.9 % ➖ │       8 │        8 │  +0.0 % ➖ │
│                                              │ 100000 │   5.174 ms │   5.213 ms │  -0.8 % ➖ │       8 │        8 │  +0.0 % ➖ │
│ powergrid → poly_buf → thrd                  │    100 │ 120.716 μs │ 120.235 μs │  +0.4 % ➖ │      27 │       27 │  +0.0 % ➖ │
│                                              │   1000 │ 158.937 μs │ 158.607 μs │  +0.2 % ➖ │      27 │       27 │  +0.0 % ➖ │
│                                              │  10000 │ 595.103 μs │ 572.210 μs │  +4.0 % ➖ │      27 │       27 │  +0.0 % ➖ │
│                                              │ 100000 │   5.671 ms │   6.279 ms │  -9.7 % ✅ │      27 │       27 │  +0.0 % ➖ │
│ powergrid → poly_buf → sprs                  │    100 │   6.367 μs │   6.171 μs │  +3.2 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                              │   1000 │  46.346 μs │  46.046 μs │  +0.7 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                              │  10000 │ 460.381 μs │ 464.789 μs │  -0.9 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                              │ 100000 │   5.352 ms │   5.267 ms │  +1.6 % ➖ │       5 │        5 │  +0.0 % ➖ │
│ powergrid → thrd_buf → seq                   │    100 │  21.139 μs │  21.690 μs │  -2.5 % ➖ │     110 │      118 │  -6.8 % ✅ │
│                                              │   1000 │  75.491 μs │  73.898 μs │  +2.2 % ➖ │     110 │      118 │  -6.8 % ✅ │
│                                              │  10000 │ 629.127 μs │ 613.488 μs │  +2.5 % ➖ │     110 │      118 │  -6.8 % ✅ │
│                                              │ 100000 │   4.212 ms │   4.130 ms │  +2.0 % ➖ │     110 │      118 │  -6.8 % ✅ │
│ powergrid_inhomogeneous_pq → assemble        │    100 │ 483.745 μs │ 499.134 μs │  -3.1 % ➖ │    3109 │     3111 │  -0.1 % ➖ │
│                                              │   1000 │   4.503 ms │   4.460 ms │  +1.0 % ➖ │   30095 │    30095 │  +0.0 % ➖ │
│                                              │  10000 │  58.467 ms │  52.976 ms │ +10.4 % ❌ │  300233 │   300233 │  +0.0 % ➖ │
│                                              │ 100000 │    1.231 s │    1.144 s │  +7.6 % ❌ │ 3000327 │  3000327 │  +0.0 % ➖ │
│ powergrid_inhomogeneous_pq → seq → seq       │    100 │   9.493 μs │   9.254 μs │  +2.6 % ➖ │     102 │      102 │  +0.0 % ➖ │
│                                              │   1000 │  96.501 μs │  94.096 μs │  +2.6 % ➖ │    1002 │     1002 │  +0.0 % ➖ │
│                                              │  10000 │ 985.503 μs │ 961.599 μs │  +2.5 % ➖ │   10002 │    10002 │  +0.0 % ➖ │
│                                              │ 100000 │  10.563 ms │  10.005 ms │  +5.6 % ❌ │  100002 │   100002 │  +0.0 % ➖ │
│ powergrid_inhomogeneous_pq → ka → seq        │    100 │  74.790 μs │  78.157 μs │  -4.3 % ➖ │    1750 │     1750 │  +0.0 % ➖ │
│                                              │   1000 │ 730.898 μs │ 775.932 μs │  -5.8 % ✅ │   17051 │    17051 │  +0.0 % ➖ │
│                                              │  10000 │   7.532 ms │   7.813 ms │  -3.6 % ➖ │  170243 │   170243 │  +0.0 % ➖ │
│                                              │ 100000 │  74.712 ms │  78.436 ms │  -4.7 % ➖ │ 1700903 │  1700903 │  +0.0 % ➖ │
│ powergrid_inhomogeneous_pq → poly → seq      │    100 │   9.593 μs │   9.698 μs │  -1.1 % ➖ │     105 │      105 │  +0.0 % ➖ │
│                                              │   1000 │  84.559 μs │  85.981 μs │  -1.7 % ➖ │    1005 │     1005 │  +0.0 % ➖ │
│                                              │  10000 │ 857.053 μs │ 869.768 μs │  -1.5 % ➖ │   10005 │    10005 │  +0.0 % ➖ │
│                                              │ 100000 │   9.057 ms │   9.107 ms │  -0.6 % ➖ │  100005 │   100005 │  +0.0 % ➖ │
│ powergrid_inhomogeneous_pq → thrd → seq      │    100 │ 388.296 μs │ 394.268 μs │  -1.5 % ➖ │    2368 │     2368 │  +0.0 % ➖ │
│                                              │   1000 │   3.988 ms │   3.964 ms │  +0.6 % ➖ │   23068 │    23068 │  +0.0 % ➖ │
│                                              │  10000 │  61.144 ms │  52.216 ms │ +17.1 % ❌ │  230068 │   230068 │  +0.0 % ➖ │
│                                              │ 100000 │ 558.135 ms │ 561.660 ms │  -0.6 % ➖ │ 2300068 │  2300068 │  +0.0 % ➖ │
│ powergrid_inhomogeneous_pq → seq_buf → seq   │    100 │   9.658 μs │   9.699 μs │  -0.4 % ➖ │     102 │      102 │  +0.0 % ➖ │
│                                              │   1000 │  96.781 μs │  96.511 μs │  +0.3 % ➖ │    1002 │     1002 │  +0.0 % ➖ │
│                                              │  10000 │   1.014 ms │   1.008 ms │  +0.6 % ➖ │   10002 │    10002 │  +0.0 % ➖ │
│                                              │ 100000 │  10.825 ms │  10.700 ms │  +1.2 % ➖ │  100002 │   100002 │  +0.0 % ➖ │
│ powergrid_inhomogeneous_pq → ka_buf → seq    │    100 │  75.251 μs │  80.501 μs │  -6.5 % ✅ │    1750 │     1750 │  +0.0 % ➖ │
│                                              │   1000 │ 728.914 μs │ 780.611 μs │  -6.6 % ✅ │   17051 │    17051 │  +0.0 % ➖ │
│                                              │  10000 │   7.566 ms │   8.069 ms │  -6.2 % ✅ │  170243 │   170243 │  +0.0 % ➖ │
│                                              │ 100000 │  76.490 ms │  80.788 ms │  -5.3 % ✅ │ 1700903 │  1700903 │  +0.0 % ➖ │
│ powergrid_inhomogeneous_pq → poly_buf → seq  │    100 │  10.229 μs │  10.199 μs │  +0.3 % ➖ │     105 │      105 │  +0.0 % ➖ │
│                                              │   1000 │  92.413 μs │  89.598 μs │  +3.1 % ➖ │    1005 │     1005 │  +0.0 % ➖ │
│                                              │  10000 │ 940.920 μs │ 918.598 μs │  +2.4 % ➖ │   10005 │    10005 │  +0.0 % ➖ │
│                                              │ 100000 │  10.055 ms │   9.750 ms │  +3.1 % ➖ │  100005 │   100005 │  +0.0 % ➖ │
│ powergrid_inhomogeneous_pq → poly_buf → ka   │    100 │  11.572 μs │  11.677 μs │  -0.9 % ➖ │     115 │      115 │  +0.0 % ➖ │
│                                              │   1000 │ 225.292 μs │ 227.797 μs │  -1.1 % ➖ │    1058 │     1058 │  +0.0 % ➖ │
│                                              │  10000 │   1.200 ms │   1.450 ms │ -17.2 % ✅ │   10058 │    10058 │  +0.0 % ➖ │
│                                              │ 100000 │  12.283 ms │  11.828 ms │  +3.8 % ➖ │  100058 │   100058 │  +0.0 % ➖ │
│ powergrid_inhomogeneous_pq → poly_buf → poly │    100 │  10.991 μs │  11.316 μs │  -2.9 % ➖ │     108 │      108 │  +0.0 % ➖ │
│                                              │   1000 │  95.098 μs │  98.314 μs │  -3.3 % ➖ │    1008 │     1008 │  +0.0 % ➖ │
│                                              │  10000 │ 966.348 μs │ 993.869 μs │  -2.8 % ➖ │   10008 │    10008 │  +0.0 % ➖ │
│                                              │ 100000 │  12.554 ms │  12.155 ms │  +3.3 % ➖ │  100008 │   100008 │  +0.0 % ➖ │
│ powergrid_inhomogeneous_pq → poly_buf → thrd │    100 │ 134.141 μs │ 125.604 μs │  +6.8 % ❌ │     127 │      127 │  +0.0 % ➖ │
│                                              │   1000 │ 212.388 μs │ 216.716 μs │  -2.0 % ➖ │    1027 │     1027 │  +0.0 % ➖ │
│                                              │  10000 │   1.153 ms │   1.227 ms │  -6.1 % ✅ │   10027 │    10027 │  +0.0 % ➖ │
│                                              │ 100000 │  13.244 ms │  11.887 ms │ +11.4 % ❌ │  100027 │   100027 │  +0.0 % ➖ │
│ powergrid_inhomogeneous_pq → poly_buf → sprs │    100 │  11.036 μs │  11.156 μs │  -1.1 % ➖ │     105 │      105 │  +0.0 % ➖ │
│                                              │   1000 │ 100.779 μs │ 101.260 μs │  -0.5 % ➖ │    1005 │     1005 │  +0.0 % ➖ │
│                                              │  10000 │   1.037 ms │   1.050 ms │  -1.3 % ➖ │   10005 │    10005 │  +0.0 % ➖ │
│                                              │ 100000 │  11.532 ms │  11.139 ms │  +3.5 % ➖ │  100005 │   100005 │  +0.0 % ➖ │
│ powergrid_inhomogeneous_pq → thrd_buf → seq  │    100 │ 396.282 μs │ 389.870 μs │  +1.6 % ➖ │    2368 │     2376 │  -0.3 % ➖ │
│                                              │   1000 │   4.083 ms │   4.025 ms │  +1.4 % ➖ │   23068 │    23076 │  -0.0 % ➖ │
│                                              │  10000 │  59.700 ms │  50.712 ms │ +17.7 % ❌ │  230068 │   230076 │  -0.0 % ➖ │
│                                              │ 100000 │ 577.850 ms │ 574.987 ms │  +0.5 % ➖ │ 2300068 │  2300076 │  -0.0 % ➖ │
└──────────────────────────────────────────────┴────────┴────────────┴────────────┴────────────┴─────────┴──────────┴────────────┘

https://github.com/JuliaDynamics/NetworkDynamics.jl/actions/runs/21026058961/artifacts/5138954261

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.

2 participants