Skip to content
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

Component Callbacks #195

Merged
merged 33 commits into from
Jan 29, 2025
Merged

Component Callbacks #195

merged 33 commits into from
Jan 29, 2025

Conversation

hexaeder
Copy link
Member

This WIP PR aims at provide a callback interface at a component level.

@hexaeder hexaeder marked this pull request as draft January 22, 2025 12:10

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment was marked as outdated.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

Copy link
Contributor

Benchmark Results

┌──────────────────────────────────────────┬────────┬────────────┬────────────┬────────────┬─────────┬──────────┬────────────┐
│ Key                                      │        │ Time       │            │            │ Allocs  │          │            │
│                                          │        │ target     │ baseline   │            │ target  │ baseline │            │
├──────────────────────────────────────────┼────────┼────────────┼────────────┼────────────┼─────────┼──────────┼────────────┤
│ diffusion_static_edge → assemble         │    100 │ 750.261 μs │ 741.425 μs │  +1.2 % ➖ │   10681 │    10681 │  +0.0 % ➖ │
│                                          │    300 │   6.048 ms │   6.163 ms │  -1.9 % ➖ │   91492 │    91492 │  +0.0 % ➖ │
│                                          │   1000 │  89.047 ms │  96.280 ms │  -7.5 % ✅ │ 1004298 │  1004298 │  +0.0 % ➖ │
│                                          │   3000 │    1.420 s │    1.529 s │  -7.2 % ✅ │ 9012298 │  9012298 │  +0.0 % ➖ │
│ diffusion_static_edge → seq → seq        │    100 │  10.680 μs │  10.725 μs │  -0.4 % ➖ │         │          │  +0.0 % ➖ │
│                                          │    300 │ 110.596 μs │ 110.697 μs │  -0.1 % ➖ │         │          │  +0.0 % ➖ │
│                                          │   1000 │   1.317 ms │   1.299 ms │  +1.4 % ➖ │         │          │  +0.0 % ➖ │
│                                          │   3000 │  12.640 ms │  12.703 ms │  -0.5 % ➖ │         │          │  +0.0 % ➖ │
│ diffusion_static_edge → ka → seq         │    100 │  18.575 μs │  19.466 μs │  -4.6 % ➖ │      87 │       87 │  +0.0 % ➖ │
│                                          │    300 │ 116.678 μs │ 118.011 μs │  -1.1 % ➖ │     172 │      172 │  +0.0 % ➖ │
│                                          │   1000 │   1.234 ms │   1.238 ms │  -0.3 % ➖ │    1066 │     1066 │  +0.0 % ➖ │
│                                          │   3000 │  12.541 ms │  12.126 ms │  +3.4 % ➖ │    8957 │     8957 │  +0.0 % ➖ │
│ diffusion_static_edge → poly → seq       │    100 │  12.123 μs │  12.193 μs │  -0.6 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                          │    300 │ 105.787 μs │ 105.958 μs │  -0.2 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                          │   1000 │   1.200 ms │   1.201 ms │  -0.1 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                          │   3000 │  12.365 ms │  12.275 ms │  +0.7 % ➖ │       3 │        3 │  +0.0 % ➖ │
│ diffusion_static_edge → thrd → seq       │    100 │  19.035 μs │  19.247 μs │  -1.1 % ➖ │      66 │       66 │  +0.0 % ➖ │
│                                          │    300 │ 115.816 μs │ 117.299 μs │  -1.3 % ➖ │      66 │       66 │  +0.0 % ➖ │
│                                          │   1000 │   1.197 ms │   1.188 ms │  +0.8 % ➖ │      66 │       66 │  +0.0 % ➖ │
│                                          │   3000 │  11.893 ms │  11.898 ms │  -0.0 % ➖ │      66 │       66 │  +0.0 % ➖ │
│ diffusion_static_edge → seq_buf → seq    │    100 │  11.512 μs │  11.251 μs │  +2.3 % ➖ │         │          │  +0.0 % ➖ │
│                                          │    300 │ 119.563 μs │ 116.237 μs │  +2.9 % ➖ │         │          │  +0.0 % ➖ │
│                                          │   1000 │   1.419 ms │   1.384 ms │  +2.5 % ➖ │         │          │  +0.0 % ➖ │
│                                          │   3000 │  14.279 ms │  13.888 ms │  +2.8 % ➖ │         │          │  +0.0 % ➖ │
│ diffusion_static_edge → ka_buf → seq     │    100 │  23.795 μs │  24.235 μs │  -1.8 % ➖ │      87 │       87 │  +0.0 % ➖ │
│                                          │    300 │ 151.653 μs │ 150.741 μs │  +0.6 % ➖ │     172 │      172 │  +0.0 % ➖ │
│                                          │   1000 │   1.458 ms │   1.452 ms │  +0.4 % ➖ │    1066 │     1066 │  +0.0 % ➖ │
│                                          │   3000 │  14.057 ms │  14.068 ms │  -0.1 % ➖ │    8957 │     8957 │  +0.0 % ➖ │
│ diffusion_static_edge → poly_buf → seq   │    100 │  15.118 μs │  18.104 μs │ -16.5 % ✅ │       3 │        3 │  +0.0 % ➖ │
│                                          │    300 │ 131.826 μs │ 158.416 μs │ -16.8 % ✅ │       3 │        3 │  +0.0 % ➖ │
│                                          │   1000 │   1.443 ms │   1.811 ms │ -20.3 % ✅ │       3 │        3 │  +0.0 % ➖ │
│                                          │   3000 │  14.249 ms │  17.507 ms │ -18.6 % ✅ │       3 │        3 │  +0.0 % ➖ │
│ diffusion_static_edge → poly_buf → ka    │    100 │  35.777 μs │  35.907 μs │  -0.4 % ➖ │      55 │       55 │  +0.0 % ➖ │
│                                          │    300 │ 259.875 μs │ 259.665 μs │  +0.1 % ➖ │      55 │       55 │  +0.0 % ➖ │
│                                          │   1000 │   2.851 ms │   2.832 ms │  +0.7 % ➖ │      55 │       55 │  +0.0 % ➖ │
│                                          │   3000 │  26.402 ms │  26.332 ms │  +0.3 % ➖ │      56 │       56 │  +0.0 % ➖ │
│ diffusion_static_edge → poly_buf → poly  │    100 │  10.470 μs │  10.455 μs │  +0.1 % ➖ │       6 │        6 │  +0.0 % ➖ │
│                                          │    300 │  72.395 μs │  69.120 μs │  +4.7 % ➖ │       6 │        6 │  +0.0 % ➖ │
│                                          │   1000 │ 709.424 μs │ 678.027 μs │  +4.6 % ➖ │       6 │        6 │  +0.0 % ➖ │
│                                          │   3000 │   7.578 ms │   7.510 ms │  +0.9 % ➖ │       6 │        6 │  +0.0 % ➖ │
│ diffusion_static_edge → poly_buf → thrd  │    100 │  19.276 μs │  19.256 μs │  +0.1 % ➖ │      25 │       25 │  +0.0 % ➖ │
│                                          │    300 │ 119.292 μs │ 119.664 μs │  -0.3 % ➖ │      25 │       25 │  +0.0 % ➖ │
│                                          │   1000 │   1.203 ms │   1.198 ms │  +0.4 % ➖ │      25 │       25 │  +0.0 % ➖ │
│                                          │   3000 │  12.188 ms │  12.175 ms │  +0.1 % ➖ │      25 │       25 │  +0.0 % ➖ │
│ diffusion_static_edge → poly_buf → sprs  │    100 │  22.762 μs │  19.747 μs │ +15.3 % ❌ │       3 │        3 │  +0.0 % ➖ │
│                                          │    300 │ 196.767 μs │ 168.385 μs │ +16.9 % ❌ │       3 │        3 │  +0.0 % ➖ │
│                                          │   1000 │   2.212 ms │   1.854 ms │ +19.3 % ❌ │       3 │        3 │  +0.0 % ➖ │
│                                          │   3000 │  21.071 ms │  17.904 ms │ +17.7 % ❌ │       3 │        3 │  +0.0 % ➖ │
│ diffusion_static_edge → thrd_buf → seq   │    100 │  21.651 μs │  24.826 μs │ -12.8 % ✅ │      66 │       66 │  +0.0 % ➖ │
│                                          │    300 │ 144.059 μs │ 151.473 μs │  -4.9 % ➖ │      66 │       66 │  +0.0 % ➖ │
│                                          │   1000 │   1.411 ms │   1.459 ms │  -3.3 % ➖ │      66 │       66 │  +0.0 % ➖ │
│                                          │   3000 │  13.374 ms │  13.769 ms │  -2.9 % ➖ │      66 │       66 │  +0.0 % ➖ │
│ diffusion_ode_edge → assemble            │    100 │   1.195 ms │   1.190 ms │  +0.4 % ➖ │   10692 │    10692 │  +0.0 % ➖ │
│                                          │    300 │   6.417 ms │   6.319 ms │  +1.6 % ➖ │   91502 │    91502 │  +0.0 % ➖ │
│                                          │   1000 │  99.240 ms │ 107.275 ms │  -7.5 % ✅ │ 1004305 │  1004305 │  +0.0 % ➖ │
│                                          │   3000 │    1.879 s │    1.552 s │ +21.1 % ❌ │ 9012305 │  9012305 │  +0.0 % ➖ │
│ diffusion_ode_edge → seq → seq           │    100 │  43.050 μs │  43.140 μs │  -0.2 % ➖ │         │          │  +0.0 % ➖ │
│                                          │    300 │ 407.311 μs │ 407.671 μs │  -0.1 % ➖ │         │          │  +0.0 % ➖ │
│                                          │   1000 │   4.656 ms │   4.665 ms │  -0.2 % ➖ │         │          │  +0.0 % ➖ │
│                                          │   3000 │  44.026 ms │  43.359 ms │  +1.5 % ➖ │         │          │  +0.0 % ➖ │
│ diffusion_ode_edge → ka → seq            │    100 │  57.066 μs │  56.395 μs │  +1.2 % ➖ │     140 │      140 │  +0.0 % ➖ │
│                                          │    300 │ 308.516 μs │ 305.771 μs │  +0.9 % ➖ │     291 │      291 │  +0.0 % ➖ │
│                                          │   1000 │   2.961 ms │   2.964 ms │  -0.1 % ➖ │    1854 │     1854 │  +0.0 % ➖ │
│                                          │   3000 │  28.300 ms │  28.339 ms │  -0.1 % ➖ │   15605 │    15605 │  +0.0 % ➖ │
│ diffusion_ode_edge → poly → seq          │    100 │  28.242 μs │  28.442 μs │  -0.7 % ➖ │       4 │        4 │  +0.0 % ➖ │
│                                          │    300 │ 252.972 μs │ 253.534 μs │  -0.2 % ➖ │       4 │        4 │  +0.0 % ➖ │
│                                          │   1000 │   2.853 ms │   2.848 ms │  +0.2 % ➖ │       4 │        4 │  +0.0 % ➖ │
│                                          │   3000 │  27.166 ms │  27.248 ms │  -0.3 % ➖ │       4 │        4 │  +0.0 % ➖ │
│ diffusion_ode_edge → thrd → seq          │    100 │  39.113 μs │  39.313 μs │  -0.5 % ➖ │      88 │       88 │  +0.0 % ➖ │
│                                          │    300 │ 273.050 μs │ 272.298 μs │  +0.3 % ➖ │      88 │       88 │  +0.0 % ➖ │
│                                          │   1000 │   2.846 ms │   2.839 ms │  +0.2 % ➖ │      88 │       88 │  +0.0 % ➖ │
│                                          │   3000 │  27.442 ms │  27.411 ms │  +0.1 % ➖ │      88 │       88 │  +0.0 % ➖ │
│ diffusion_ode_edge → seq_buf → seq       │    100 │  42.139 μs │  42.310 μs │  -0.4 % ➖ │         │          │  +0.0 % ➖ │
│                                          │    300 │ 400.898 μs │ 400.328 μs │  +0.1 % ➖ │         │          │  +0.0 % ➖ │
│                                          │   1000 │   4.551 ms │   4.551 ms │  +0.0 % ➖ │         │          │  +0.0 % ➖ │
│                                          │   3000 │  42.636 ms │  42.555 ms │  +0.2 % ➖ │         │          │  +0.0 % ➖ │
│ diffusion_ode_edge → ka_buf → seq        │    100 │  58.038 μs │  57.157 μs │  +1.5 % ➖ │     140 │      140 │  +0.0 % ➖ │
│                                          │    300 │ 353.970 μs │ 319.557 μs │ +10.8 % ❌ │     291 │      291 │  +0.0 % ➖ │
│                                          │   1000 │   3.150 ms │   3.091 ms │  +1.9 % ➖ │    1854 │     1854 │  +0.0 % ➖ │
│                                          │   3000 │  30.017 ms │  29.582 ms │  +1.5 % ➖ │   15605 │    15605 │  +0.0 % ➖ │
│ diffusion_ode_edge → poly_buf → seq      │    100 │  32.561 μs │  29.425 μs │ +10.7 % ❌ │       4 │        4 │  +0.0 % ➖ │
│                                          │    300 │ 291.625 μs │ 259.756 μs │ +12.3 % ❌ │       4 │        4 │  +0.0 % ➖ │
│                                          │   1000 │   3.279 ms │   2.902 ms │ +13.0 % ❌ │       4 │        4 │  +0.0 % ➖ │
│                                          │   3000 │  31.118 ms │  27.739 ms │ +12.2 % ❌ │       4 │        4 │  +0.0 % ➖ │
│ diffusion_ode_edge → poly_buf → ka       │    100 │  47.879 μs │  50.595 μs │  -5.4 % ✅ │      56 │       56 │  +0.0 % ➖ │
│                                          │    300 │ 362.176 μs │ 389.478 μs │  -7.0 % ✅ │      56 │       56 │  +0.0 % ➖ │
│                                          │   1000 │   3.929 ms │   4.261 ms │  -7.8 % ✅ │      56 │       56 │  +0.0 % ➖ │
│                                          │   3000 │  36.998 ms │  39.745 ms │  -6.9 % ✅ │      57 │       57 │  +0.0 % ➖ │
│ diffusion_ode_edge → poly_buf → poly     │    100 │  25.167 μs │  27.852 μs │  -9.6 % ✅ │       7 │        7 │  +0.0 % ➖ │
│                                          │    300 │ 208.529 μs │ 237.174 μs │ -12.1 % ✅ │       7 │        7 │  +0.0 % ➖ │
│                                          │   1000 │   2.202 ms │   2.524 ms │ -12.8 % ✅ │       7 │        7 │  +0.0 % ➖ │
│                                          │   3000 │  21.712 ms │  24.817 ms │ -12.5 % ✅ │       7 │        7 │  +0.0 % ➖ │
│ diffusion_ode_edge → poly_buf → thrd     │    100 │  34.284 μs │  33.983 μs │  +0.9 % ➖ │      26 │       26 │  +0.0 % ➖ │
│                                          │    300 │ 250.608 μs │ 248.925 μs │  +0.7 % ➖ │      26 │       26 │  +0.0 % ➖ │
│                                          │   1000 │   2.699 ms │   2.692 ms │  +0.3 % ➖ │      26 │       26 │  +0.0 % ➖ │
│                                          │   3000 │  26.186 ms │  25.672 ms │  +2.0 % ➖ │      26 │       26 │  +0.0 % ➖ │
│ diffusion_ode_edge → poly_buf → sprs     │    100 │  34.124 μs │  34.063 μs │  +0.2 % ➖ │       4 │        4 │  +0.0 % ➖ │
│                                          │    300 │ 298.948 μs │ 296.123 μs │  +1.0 % ➖ │       4 │        4 │  +0.0 % ➖ │
│                                          │   1000 │   3.334 ms │   3.328 ms │  +0.2 % ➖ │       4 │        4 │  +0.0 % ➖ │
│                                          │   3000 │  31.566 ms │  31.171 ms │  +1.3 % ➖ │       4 │        4 │  +0.0 % ➖ │
│ diffusion_ode_edge → thrd_buf → seq      │    100 │  44.593 μs │  41.878 μs │  +6.5 % ❌ │      88 │       88 │  +0.0 % ➖ │
│                                          │    300 │ 318.354 μs │ 288.759 μs │ +10.2 % ❌ │      88 │       88 │  +0.0 % ➖ │
│                                          │   1000 │   3.092 ms │   3.023 ms │  +2.3 % ➖ │      88 │       88 │  +0.0 % ➖ │
│                                          │   3000 │  29.462 ms │  28.974 ms │  +1.7 % ➖ │      88 │       88 │  +0.0 % ➖ │
│ kuramoto_homogeneous → assemble          │    100 │ 145.913 μs │ 138.649 μs │  +5.2 % ❌ │    1069 │     1069 │  +0.0 % ➖ │
│                                          │   1000 │   1.013 ms │ 981.774 μs │  +3.2 % ➖ │    8302 │     8302 │  +0.0 % ➖ │
│                                          │  10000 │   8.902 ms │   7.933 ms │ +12.2 % ❌ │   80302 │    80302 │  +0.0 % ➖ │
│                                          │ 100000 │  64.312 ms │  62.715 ms │  +2.5 % ➖ │  800302 │   800302 │  +0.0 % ➖ │
│ kuramoto_homogeneous → seq → seq         │    100 │   1.116 μs │   1.122 μs │  -0.5 % ➖ │         │          │  +0.0 % ➖ │
│                                          │   1000 │  11.392 μs │  11.401 μs │  -0.1 % ➖ │         │          │  +0.0 % ➖ │
│                                          │  10000 │ 124.312 μs │ 123.400 μs │  +0.7 % ➖ │         │          │  +0.0 % ➖ │
│                                          │ 100000 │   1.620 ms │   1.600 ms │  +1.2 % ➖ │         │          │  +0.0 % ➖ │
│ kuramoto_homogeneous → ka → seq          │    100 │   3.134 μs │   3.106 μs │  +0.9 % ➖ │      46 │       46 │  +0.0 % ➖ │
│                                          │   1000 │  13.360 μs │  13.490 μs │  -1.0 % ➖ │      49 │       49 │  +0.0 % ➖ │
│                                          │  10000 │ 146.985 μs │ 145.481 μs │  +1.0 % ➖ │     271 │      271 │  +0.0 % ➖ │
│                                          │ 100000 │   1.146 ms │   1.091 ms │  +5.0 % ➖ │    1239 │     1239 │  +0.0 % ➖ │
│ kuramoto_homogeneous → poly → seq        │    100 │   1.947 μs │   2.079 μs │  -6.3 % ✅ │       3 │        3 │  +0.0 % ➖ │
│                                          │   1000 │  10.855 μs │  11.131 μs │  -2.5 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                          │  10000 │  97.592 μs │  98.994 μs │  -1.4 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                          │ 100000 │   1.120 ms │   1.088 ms │  +2.9 % ➖ │       3 │        3 │  +0.0 % ➖ │
│ kuramoto_homogeneous → thrd → seq        │    100 │  10.850 μs │  11.642 μs │  -6.8 % ✅ │      66 │       66 │  +0.0 % ➖ │
│                                          │   1000 │  20.749 μs │  20.598 μs │  +0.7 % ➖ │      66 │       66 │  +0.0 % ➖ │
│                                          │  10000 │ 110.546 μs │ 112.791 μs │  -2.0 % ➖ │      66 │       66 │  +0.0 % ➖ │
│                                          │ 100000 │ 988.506 μs │ 986.233 μs │  +0.2 % ➖ │      66 │       66 │  +0.0 % ➖ │
│ kuramoto_homogeneous → seq_buf → seq     │    100 │   1.031 μs │   1.072 μs │  -3.9 % ➖ │         │          │  +0.0 % ➖ │
│                                          │   1000 │  10.540 μs │  10.615 μs │  -0.7 % ➖ │         │          │  +0.0 % ➖ │
│                                          │  10000 │ 110.346 μs │ 112.681 μs │  -2.1 % ➖ │         │          │  +0.0 % ➖ │
│                                          │ 100000 │   1.261 ms │   1.280 ms │  -1.5 % ➖ │         │          │  +0.0 % ➖ │
│ kuramoto_homogeneous → ka_buf → seq      │    100 │   3.026 μs │   3.065 μs │  -1.3 % ➖ │      46 │       46 │  +0.0 % ➖ │
│                                          │   1000 │  12.519 μs │  12.849 μs │  -2.6 % ➖ │      49 │       49 │  +0.0 % ➖ │
│                                          │  10000 │ 137.006 μs │ 152.514 μs │ -10.2 % ✅ │     271 │      271 │  +0.0 % ➖ │
│                                          │ 100000 │   1.076 ms │   1.120 ms │  -4.0 % ➖ │    1239 │     1239 │  +0.0 % ➖ │
│ kuramoto_homogeneous → poly_buf → seq    │    100 │   2.100 μs │   2.049 μs │  +2.5 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                          │   1000 │  12.343 μs │  11.371 μs │  +8.5 % ❌ │       3 │        3 │  +0.0 % ➖ │
│                                          │  10000 │ 112.530 μs │ 102.392 μs │  +9.9 % ❌ │       3 │        3 │  +0.0 % ➖ │
│                                          │ 100000 │   1.256 ms │   1.193 ms │  +5.3 % ❌ │       3 │        3 │  +0.0 % ➖ │
│ kuramoto_homogeneous → poly_buf → ka     │    100 │   2.954 μs │   2.983 μs │  -1.0 % ➖ │      13 │       13 │  +0.0 % ➖ │
│                                          │   1000 │  20.559 μs │  22.011 μs │  -6.6 % ✅ │      37 │       37 │  +0.0 % ➖ │
│                                          │  10000 │ 160.570 μs │ 171.611 μs │  -6.4 % ✅ │      55 │       55 │  +0.0 % ➖ │
│                                          │ 100000 │   1.827 ms │   1.920 ms │  -4.8 % ➖ │      55 │       55 │  +0.0 % ➖ │
│ kuramoto_homogeneous → poly_buf → poly   │    100 │   2.775 μs │   2.857 μs │  -2.9 % ➖ │       6 │        6 │  +0.0 % ➖ │
│                                          │   1000 │  13.625 μs │  13.460 μs │  +1.2 % ➖ │       6 │        6 │  +0.0 % ➖ │
│                                          │  10000 │ 123.771 μs │ 122.558 μs │  +1.0 % ➖ │       6 │        6 │  +0.0 % ➖ │
│                                          │ 100000 │   1.333 ms │   1.342 ms │  -0.7 % ➖ │       6 │        6 │  +0.0 % ➖ │
│ kuramoto_homogeneous → poly_buf → thrd   │    100 │   7.750 μs │   7.704 μs │  +0.6 % ➖ │      25 │       25 │  +0.0 % ➖ │
│                                          │   1000 │  19.897 μs │  20.168 μs │  -1.3 % ➖ │      25 │       25 │  +0.0 % ➖ │
│                                          │  10000 │ 153.357 μs │ 152.114 μs │  +0.8 % ➖ │      25 │       25 │  +0.0 % ➖ │
│                                          │ 100000 │   2.129 ms │   2.105 ms │  +1.1 % ➖ │      25 │       25 │  +0.0 % ➖ │
│ kuramoto_homogeneous → poly_buf → sprs   │    100 │   2.588 μs │   2.453 μs │  +5.5 % ❌ │       3 │        3 │  +0.0 % ➖ │
│                                          │   1000 │  15.910 μs │  14.667 μs │  +8.5 % ❌ │       3 │        3 │  +0.0 % ➖ │
│                                          │  10000 │ 153.095 μs │ 142.076 μs │  +7.8 % ❌ │       3 │        3 │  +0.0 % ➖ │
│                                          │ 100000 │   1.789 ms │   1.709 ms │  +4.7 % ➖ │       3 │        3 │  +0.0 % ➖ │
│ kuramoto_homogeneous → thrd_buf → seq    │    100 │  11.571 μs │  11.762 μs │  -1.6 % ➖ │      66 │       66 │  +0.0 % ➖ │
│                                          │   1000 │  21.811 μs │  22.422 μs │  -2.7 % ➖ │      66 │       66 │  +0.0 % ➖ │
│                                          │  10000 │ 123.110 μs │ 126.447 μs │  -2.6 % ➖ │      66 │       66 │  +0.0 % ➖ │
│                                          │ 100000 │   1.037 ms │   1.024 ms │  +1.3 % ➖ │      66 │       66 │  +0.0 % ➖ │
│ kuramoto_heterogeneous → assemble        │    100 │ 175.498 μs │ 166.673 μs │  +5.3 % ❌ │     823 │      823 │  +0.0 % ➖ │
│                                          │   1000 │ 937.931 μs │ 901.483 μs │  +4.0 % ➖ │    5365 │     5365 │  +0.0 % ➖ │
│                                          │  10000 │   9.796 ms │   9.845 ms │  -0.5 % ➖ │   50394 │    50394 │  +0.0 % ➖ │
│                                          │ 100000 │  95.321 ms │  94.315 ms │  +1.1 % ➖ │  500411 │   500411 │  +0.0 % ➖ │
│ kuramoto_heterogeneous → seq → seq       │    100 │   1.151 μs │   1.119 μs │  +2.9 % ➖ │         │          │  +0.0 % ➖ │
│                                          │   1000 │  11.101 μs │  11.221 μs │  -1.1 % ➖ │         │          │  +0.0 % ➖ │
│                                          │  10000 │ 120.455 μs │ 120.646 μs │  -0.2 % ➖ │         │          │  +0.0 % ➖ │
│                                          │ 100000 │   1.603 ms │   1.583 ms │  +1.2 % ➖ │         │          │  +0.0 % ➖ │
│ kuramoto_heterogeneous → ka → seq        │    100 │   4.515 μs │   4.532 μs │  -0.4 % ➖ │      76 │       76 │  +0.0 % ➖ │
│                                          │   1000 │  14.547 μs │  14.678 μs │  -0.9 % ➖ │      77 │       77 │  +0.0 % ➖ │
│                                          │  10000 │ 169.587 μs │ 169.838 μs │  -0.1 % ➖ │     378 │      378 │  +0.0 % ➖ │
│                                          │ 100000 │   1.099 ms │   1.099 ms │  -0.1 % ➖ │    1346 │     1346 │  +0.0 % ➖ │
│ kuramoto_heterogeneous → poly → seq      │    100 │   2.366 μs │   2.690 μs │ -12.0 % ✅ │       5 │        5 │  +0.0 % ➖ │
│                                          │   1000 │  11.507 μs │  11.617 μs │  -1.0 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                          │  10000 │  96.841 μs │  99.014 μs │  -2.2 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                          │ 100000 │   1.106 ms │   1.080 ms │  +2.5 % ➖ │       5 │        5 │  +0.0 % ➖ │
│ kuramoto_heterogeneous → thrd → seq      │    100 │  20.739 μs │  22.983 μs │  -9.8 % ✅ │     110 │      110 │  +0.0 % ➖ │
│                                          │   1000 │  33.142 μs │  32.912 μs │  +0.7 % ➖ │     110 │      110 │  +0.0 % ➖ │
│                                          │  10000 │ 124.092 μs │ 127.398 μs │  -2.6 % ➖ │     110 │      110 │  +0.0 % ➖ │
│                                          │ 100000 │ 988.366 μs │ 979.529 μs │  +0.9 % ➖ │     110 │      110 │  +0.0 % ➖ │
│ kuramoto_heterogeneous → seq_buf → seq   │    100 │   1.022 μs │   1.043 μs │  -2.0 % ➖ │         │          │  +0.0 % ➖ │
│                                          │   1000 │  10.219 μs │  10.139 μs │  +0.8 % ➖ │         │          │  +0.0 % ➖ │
│                                          │  10000 │ 107.270 μs │ 109.114 μs │  -1.7 % ➖ │         │          │  +0.0 % ➖ │
│                                          │ 100000 │   1.217 ms │   1.214 ms │  +0.2 % ➖ │         │          │  +0.0 % ➖ │
│ kuramoto_heterogeneous → ka_buf → seq    │    100 │   4.528 μs │   4.478 μs │  +1.1 % ➖ │      76 │       76 │  +0.0 % ➖ │
│                                          │   1000 │  13.856 μs │  14.036 μs │  -1.3 % ➖ │      77 │       77 │  +0.0 % ➖ │
│                                          │  10000 │ 171.400 μs │ 174.967 μs │  -2.0 % ➖ │     378 │      378 │  +0.0 % ➖ │
│                                          │ 100000 │   1.100 ms │   1.123 ms │  -2.0 % ➖ │    1346 │     1346 │  +0.0 % ➖ │
│ kuramoto_heterogeneous → poly_buf → seq  │    100 │   2.671 μs │   2.703 μs │  -1.2 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                          │   1000 │  13.110 μs │  12.213 μs │  +7.3 % ❌ │       5 │        5 │  +0.0 % ➖ │
│                                          │  10000 │ 113.131 μs │ 114.204 μs │  -0.9 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                          │ 100000 │   1.266 ms │   1.163 ms │  +8.9 % ❌ │       5 │        5 │  +0.0 % ➖ │
│ kuramoto_heterogeneous → poly_buf → ka   │    100 │   3.416 μs │   3.461 μs │  -1.3 % ➖ │      15 │       15 │  +0.0 % ➖ │
│                                          │   1000 │  22.632 μs │  22.782 μs │  -0.7 % ➖ │      39 │       39 │  +0.0 % ➖ │
│                                          │  10000 │ 160.620 μs │ 159.888 μs │  +0.5 % ➖ │      57 │       57 │  +0.0 % ➖ │
│                                          │ 100000 │   1.871 ms │   1.852 ms │  +1.0 % ➖ │      57 │       57 │  +0.0 % ➖ │
│ kuramoto_heterogeneous → poly_buf → poly │    100 │   3.236 μs │   3.380 μs │  -4.3 % ➖ │       8 │        8 │  +0.0 % ➖ │
│                                          │   1000 │  14.346 μs │  14.337 μs │  +0.1 % ➖ │       8 │        8 │  +0.0 % ➖ │
│                                          │  10000 │ 112.179 μs │ 112.029 μs │  +0.1 % ➖ │       8 │        8 │  +0.0 % ➖ │
│                                          │ 100000 │   1.340 ms │   1.303 ms │  +2.8 % ➖ │       8 │        8 │  +0.0 % ➖ │
│ kuramoto_heterogeneous → poly_buf → thrd │    100 │   8.341 μs │   8.205 μs │  +1.7 % ➖ │      27 │       27 │  +0.0 % ➖ │
│                                          │   1000 │  20.879 μs │  20.718 μs │  +0.8 % ➖ │      27 │       27 │  +0.0 % ➖ │
│                                          │  10000 │ 154.758 μs │ 139.651 μs │ +10.8 % ❌ │      27 │       27 │  +0.0 % ➖ │
│                                          │ 100000 │   2.266 ms │   2.041 ms │ +11.0 % ❌ │      27 │       27 │  +0.0 % ➖ │
│ kuramoto_heterogeneous → poly_buf → sprs │    100 │   3.096 μs │   3.102 μs │  -0.2 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                          │   1000 │  15.469 μs │  15.789 μs │  -2.0 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                          │  10000 │ 154.088 μs │ 152.935 μs │  +0.8 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                          │ 100000 │   1.705 ms │   1.694 ms │  +0.6 % ➖ │       5 │        5 │  +0.0 % ➖ │
│ kuramoto_heterogeneous → thrd_buf → seq  │    100 │  19.827 μs │  23.844 μs │ -16.8 % ✅ │     110 │      110 │  +0.0 % ➖ │
│                                          │   1000 │  35.977 μs │  36.739 μs │  -2.1 % ➖ │     110 │      110 │  +0.0 % ➖ │
│                                          │  10000 │ 127.858 μs │ 131.115 μs │  -2.5 % ➖ │     110 │      110 │  +0.0 % ➖ │
│                                          │ 100000 │   1.038 ms │   1.034 ms │  +0.4 % ➖ │     110 │      110 │  +0.0 % ➖ │
│ powergrid → assemble                     │    100 │ 258.533 μs │ 244.787 μs │  +5.6 % ❌ │    1602 │     1602 │  +0.0 % ➖ │
│                                          │   1000 │   1.447 ms │   1.426 ms │  +1.5 % ➖ │   13883 │    13883 │  +0.0 % ➖ │
│                                          │  10000 │  16.299 ms │  16.097 ms │  +1.2 % ➖ │  144648 │   144648 │  +0.0 % ➖ │
│                                          │ 100000 │ 185.251 ms │ 188.708 ms │  -1.8 % ➖ │ 1449929 │  1449929 │  +0.0 % ➖ │
│ powergrid → seq → seq                    │    100 │   7.346 μs │   7.344 μs │  +0.0 % ➖ │         │          │  +0.0 % ➖ │
│                                          │   1000 │  73.147 μs │  72.996 μs │  +0.2 % ➖ │         │          │  +0.0 % ➖ │
│                                          │  10000 │ 750.782 μs │ 747.316 μs │  +0.5 % ➖ │         │          │  +0.0 % ➖ │
│                                          │ 100000 │   7.993 ms │   7.955 ms │  +0.5 % ➖ │         │          │  +0.0 % ➖ │
│ powergrid → ka → seq                     │    100 │  11.056 μs │  11.271 μs │  -1.9 % ➖ │      76 │       76 │  +0.0 % ➖ │
│                                          │   1000 │  78.056 μs │  77.694 μs │  +0.5 % ➖ │      77 │       77 │  +0.0 % ➖ │
│                                          │  10000 │ 509.882 μs │ 510.444 μs │  -0.1 % ➖ │     378 │      378 │  +0.0 % ➖ │
│                                          │ 100000 │   3.614 ms │   3.608 ms │  +0.2 % ➖ │    1346 │     1346 │  +0.0 % ➖ │
│ powergrid → poly → seq                   │    100 │   4.781 μs │   4.895 μs │  -2.3 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                          │   1000 │  33.613 μs │  34.033 μs │  -1.2 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                          │  10000 │ 315.349 μs │ 319.286 μs │  -1.2 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                          │ 100000 │   3.480 ms │   3.500 ms │  -0.6 % ➖ │       5 │        5 │  +0.0 % ➖ │
│ powergrid → thrd → seq                   │    100 │  28.534 μs │  25.438 μs │ +12.2 % ❌ │     110 │      110 │  +0.0 % ➖ │
│                                          │   1000 │  61.425 μs │  62.065 μs │  -1.0 % ➖ │     110 │      110 │  +0.0 % ➖ │
│                                          │  10000 │ 366.715 μs │ 375.451 μs │  -2.3 % ➖ │     110 │      110 │  +0.0 % ➖ │
│                                          │ 100000 │   3.312 ms │   3.325 ms │  -0.4 % ➖ │     110 │      110 │  +0.0 % ➖ │
│ powergrid → seq_buf → seq                │    100 │   7.561 μs │   7.587 μs │  -0.4 % ➖ │         │          │  +0.0 % ➖ │
│                                          │   1000 │  75.491 μs │  75.451 μs │  +0.1 % ➖ │         │          │  +0.0 % ➖ │
│                                          │  10000 │ 768.887 μs │ 772.242 μs │  -0.4 % ➖ │         │          │  +0.0 % ➖ │
│                                          │ 100000 │   8.278 ms │   8.345 ms │  -0.8 % ➖ │         │          │  +0.0 % ➖ │
│ powergrid → ka_buf → seq                 │    100 │  11.121 μs │  11.141 μs │  -0.2 % ➖ │      76 │       76 │  +0.0 % ➖ │
│                                          │   1000 │  79.999 μs │  79.679 μs │  +0.4 % ➖ │      77 │       77 │  +0.0 % ➖ │
│                                          │  10000 │ 541.942 μs │ 562.321 μs │  -3.6 % ➖ │     378 │      378 │  +0.0 % ➖ │
│                                          │ 100000 │   3.790 ms │   3.783 ms │  +0.2 % ➖ │    1346 │     1346 │  +0.0 % ➖ │
│ powergrid → poly_buf → seq               │    100 │   5.440 μs │   5.442 μs │  -0.0 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                          │   1000 │  36.889 μs │  39.304 μs │  -6.1 % ✅ │       5 │        5 │  +0.0 % ➖ │
│                                          │  10000 │ 369.680 μs │ 375.121 μs │  -1.5 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                          │ 100000 │   3.906 ms │   4.043 ms │  -3.4 % ➖ │       5 │        5 │  +0.0 % ➖ │
│ powergrid → poly_buf → ka                │    100 │   6.783 μs │   6.642 μs │  +2.1 % ➖ │      15 │       15 │  +0.0 % ➖ │
│                                          │   1000 │  54.382 μs │  56.987 μs │  -4.6 % ➖ │      57 │       57 │  +0.0 % ➖ │
│                                          │  10000 │ 478.083 μs │ 478.834 μs │  -0.2 % ➖ │      57 │       57 │  +0.0 % ➖ │
│                                          │ 100000 │   5.020 ms │   5.209 ms │  -3.6 % ➖ │      57 │       57 │  +0.0 % ➖ │
│ powergrid → poly_buf → poly              │    100 │   5.786 μs │   6.056 μs │  -4.5 % ➖ │       8 │        8 │  +0.0 % ➖ │
│                                          │   1000 │  38.362 μs │  37.921 μs │  +1.2 % ➖ │       8 │        8 │  +0.0 % ➖ │
│                                          │  10000 │ 355.494 μs │ 378.828 μs │  -6.2 % ✅ │       8 │        8 │  +0.0 % ➖ │
│                                          │ 100000 │   4.347 ms │   4.336 ms │  +0.3 % ➖ │       8 │        8 │  +0.0 % ➖ │
│ powergrid → poly_buf → thrd              │    100 │  10.916 μs │  11.066 μs │  -1.4 % ➖ │      27 │       27 │  +0.0 % ➖ │
│                                          │   1000 │  46.868 μs │  49.302 μs │  -4.9 % ➖ │      27 │       27 │  +0.0 % ➖ │
│                                          │  10000 │ 443.409 μs │ 436.816 μs │  +1.5 % ➖ │      27 │       27 │  +0.0 % ➖ │
│                                          │ 100000 │   6.162 ms │   6.399 ms │  -3.7 % ➖ │      27 │       27 │  +0.0 % ➖ │
│ powergrid → poly_buf → sprs              │    100 │   5.931 μs │   6.147 μs │  -3.5 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                          │   1000 │  44.663 μs │  46.787 μs │  -4.5 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                          │  10000 │ 428.209 μs │ 454.869 μs │  -5.9 % ✅ │       5 │        5 │  +0.0 % ➖ │
│                                          │ 100000 │   5.015 ms │   5.099 ms │  -1.7 % ➖ │       5 │        5 │  +0.0 % ➖ │
│ powergrid → thrd_buf → seq               │    100 │  27.712 μs │  23.423 μs │ +18.3 % ❌ │     110 │      110 │  +0.0 % ➖ │
│                                          │   1000 │  65.783 μs │  64.471 μs │  +2.0 % ➖ │     110 │      110 │  +0.0 % ➖ │
│                                          │  10000 │ 417.690 μs │ 419.855 μs │  -0.5 % ➖ │     110 │      110 │  +0.0 % ➖ │
│                                          │ 100000 │   3.619 ms │   3.543 ms │  +2.1 % ➖ │     110 │      110 │  +0.0 % ➖ │
└──────────────────────────────────────────┴────────┴────────────┴────────────┴────────────┴─────────┴──────────┴────────────┘

https://github.com/JuliaDynamics/NetworkDynamics.jl/actions/runs/13030712356/artifacts/2503703978

@hexaeder hexaeder marked this pull request as ready for review January 29, 2025 12:17
@hexaeder hexaeder merged commit 057ee44 into main Jan 29, 2025
7 checks passed
@hexaeder hexaeder deleted the hw/callbacks branch January 29, 2025 12:18
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