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

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

Component Callbacks #195

wants to merge 5 commits into from

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.

Copy link
Contributor

Benchmark Results

┌──────────────────────────────────────────┬────────┬────────────┬────────────┬────────────┬─────────┬──────────┬────────────┐
│ Key                                      │        │ Time       │            │            │ Allocs  │          │            │
│                                          │        │ target     │ baseline   │            │ target  │ baseline │            │
├──────────────────────────────────────────┼────────┼────────────┼────────────┼────────────┼─────────┼──────────┼────────────┤
│ diffusion_static_edge → assemble         │    100 │ 754.437 μs │ 750.400 μs │  +0.5 % ➖ │   10681 │    10681 │  +0.0 % ➖ │
│                                          │    300 │   6.180 ms │   7.230 ms │ -14.5 % ✅ │   91492 │    91492 │  +0.0 % ➖ │
│                                          │   1000 │ 104.409 ms │  93.289 ms │ +11.9 % ❌ │ 1004298 │  1004298 │  +0.0 % ➖ │
│                                          │   3000 │    1.522 s │    1.536 s │  -0.9 % ➖ │ 9012298 │  9012298 │  +0.0 % ➖ │
│ diffusion_static_edge → seq → seq        │    100 │  10.715 μs │  10.715 μs │  +0.0 % ➖ │         │          │  +0.0 % ➖ │
│                                          │    300 │ 110.736 μs │ 110.366 μs │  +0.3 % ➖ │         │          │  +0.0 % ➖ │
│                                          │   1000 │   1.309 ms │   1.310 ms │  -0.1 % ➖ │         │          │  +0.0 % ➖ │
│                                          │   3000 │  12.851 ms │  13.182 ms │  -2.5 % ➖ │         │          │  +0.0 % ➖ │
│ diffusion_static_edge → ka → seq         │    100 │  18.625 μs │  18.955 μs │  -1.7 % ➖ │      87 │       87 │  +0.0 % ➖ │
│                                          │    300 │ 117.209 μs │ 118.621 μs │  -1.2 % ➖ │     172 │      172 │  +0.0 % ➖ │
│                                          │   1000 │   1.251 ms │   1.257 ms │  -0.5 % ➖ │    1066 │     1066 │  +0.0 % ➖ │
│                                          │   3000 │  12.452 ms │  12.619 ms │  -1.3 % ➖ │    8957 │     8957 │  +0.0 % ➖ │
│ diffusion_static_edge → poly → seq       │    100 │  12.223 μs │  12.123 μs │  +0.8 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                          │    300 │ 105.577 μs │ 105.657 μs │  -0.1 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                          │   1000 │   1.198 ms │   1.200 ms │  -0.2 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                          │   3000 │  12.567 ms │  12.732 ms │  -1.3 % ➖ │       3 │        3 │  +0.0 % ➖ │
│ diffusion_static_edge → thrd → seq       │    100 │  19.376 μs │  19.356 μs │  +0.1 % ➖ │      66 │       66 │  +0.0 % ➖ │
│                                          │    300 │ 116.528 μs │ 117.549 μs │  -0.9 % ➖ │      66 │       66 │  +0.0 % ➖ │
│                                          │   1000 │   1.208 ms │   1.204 ms │  +0.3 % ➖ │      66 │       66 │  +0.0 % ➖ │
│                                          │   3000 │  12.088 ms │  12.471 ms │  -3.1 % ➖ │      66 │       66 │  +0.0 % ➖ │
│ diffusion_static_edge → seq_buf → seq    │    100 │  11.586 μs │  11.231 μs │  +3.2 % ➖ │         │          │  +0.0 % ➖ │
│                                          │    300 │ 119.503 μs │ 116.357 μs │  +2.7 % ➖ │         │          │  +0.0 % ➖ │
│                                          │   1000 │   1.420 ms │   1.385 ms │  +2.5 % ➖ │         │          │  +0.0 % ➖ │
│                                          │   3000 │  14.468 ms │  14.463 ms │  +0.0 % ➖ │         │          │  +0.0 % ➖ │
│ diffusion_static_edge → ka_buf → seq     │    100 │  24.305 μs │  24.165 μs │  +0.6 % ➖ │      87 │       87 │  +0.0 % ➖ │
│                                          │    300 │ 149.288 μs │ 148.136 μs │  +0.8 % ➖ │     172 │      172 │  +0.0 % ➖ │
│                                          │   1000 │   1.483 ms │   1.470 ms │  +0.9 % ➖ │    1066 │     1066 │  +0.0 % ➖ │
│                                          │   3000 │  14.343 ms │  14.583 ms │  -1.6 % ➖ │    8957 │     8957 │  +0.0 % ➖ │
│ diffusion_static_edge → poly_buf → seq   │    100 │  18.014 μs │  15.028 μs │ +19.9 % ❌ │       3 │        3 │  +0.0 % ➖ │
│                                          │    300 │ 158.667 μs │ 130.824 μs │ +21.3 % ❌ │       3 │        3 │  +0.0 % ➖ │
│                                          │   1000 │   1.802 ms │   1.459 ms │ +23.6 % ❌ │       3 │        3 │  +0.0 % ➖ │
│                                          │   3000 │  17.544 ms │  15.085 ms │ +16.3 % ❌ │       3 │        3 │  +0.0 % ➖ │
│ diffusion_static_edge → poly_buf → ka    │    100 │  33.262 μs │  32.600 μs │  +2.0 % ➖ │      55 │       55 │  +0.0 % ➖ │
│                                          │    300 │ 232.224 μs │ 233.405 μs │  -0.5 % ➖ │      55 │       55 │  +0.0 % ➖ │
│                                          │   1000 │   2.471 ms │   2.483 ms │  -0.5 % ➖ │      55 │       55 │  +0.0 % ➖ │
│                                          │   3000 │  23.493 ms │  24.067 ms │  -2.4 % ➖ │      56 │       56 │  +0.0 % ➖ │
│ diffusion_static_edge → poly_buf → poly  │    100 │  13.204 μs │  10.360 μs │ +27.5 % ❌ │       6 │        6 │  +0.0 % ➖ │
│                                          │    300 │ 100.427 μs │  70.702 μs │ +42.0 % ❌ │       6 │        6 │  +0.0 % ➖ │
│                                          │   1000 │   1.098 ms │ 702.982 μs │ +56.1 % ❌ │       6 │        6 │  +0.0 % ➖ │
│                                          │   3000 │  10.674 ms │   7.868 ms │ +35.7 % ❌ │       6 │        6 │  +0.0 % ➖ │
│ diffusion_static_edge → poly_buf → thrd  │    100 │  16.832 μs │  19.236 μs │ -12.5 % ✅ │      25 │       25 │  +0.0 % ➖ │
│                                          │    300 │ 100.878 μs │ 120.855 μs │ -16.5 % ✅ │      25 │       25 │  +0.0 % ➖ │
│                                          │   1000 │   1.029 ms │   1.242 ms │ -17.1 % ✅ │      25 │       25 │  +0.0 % ➖ │
│                                          │   3000 │  10.848 ms │  12.908 ms │ -16.0 % ✅ │      25 │       25 │  +0.0 % ➖ │
│ diffusion_static_edge → poly_buf → sprs  │    100 │  22.732 μs │  19.466 μs │ +16.8 % ❌ │       3 │        3 │  +0.0 % ➖ │
│                                          │    300 │ 195.996 μs │ 167.192 μs │ +17.2 % ❌ │       3 │        3 │  +0.0 % ➖ │
│                                          │   1000 │   2.204 ms │   1.901 ms │ +15.9 % ❌ │       3 │        3 │  +0.0 % ➖ │
│                                          │   3000 │  20.906 ms │  18.219 ms │ +14.7 % ❌ │       3 │        3 │  +0.0 % ➖ │
│ diffusion_static_edge → thrd_buf → seq   │    100 │  25.117 μs │  21.941 μs │ +14.5 % ❌ │      66 │       66 │  +0.0 % ➖ │
│                                          │    300 │ 149.028 μs │ 144.450 μs │  +3.2 % ➖ │      66 │       66 │  +0.0 % ➖ │
│                                          │   1000 │   1.458 ms │   1.409 ms │  +3.5 % ➖ │      66 │       66 │  +0.0 % ➖ │
│                                          │   3000 │  14.049 ms │  14.375 ms │  -2.3 % ➖ │      66 │       66 │  +0.0 % ➖ │
│ diffusion_ode_edge → assemble            │    100 │   1.199 ms │ 730.302 μs │ +64.2 % ❌ │   10692 │    10692 │  +0.0 % ➖ │
│                                          │    300 │   6.502 ms │   6.453 ms │  +0.8 % ➖ │   91502 │    91502 │  +0.0 % ➖ │
│                                          │   1000 │ 106.940 ms │ 110.069 ms │  -2.8 % ➖ │ 1004305 │  1004305 │  +0.0 % ➖ │
│                                          │   3000 │    1.700 s │    1.695 s │  +0.3 % ➖ │ 9012305 │  9012305 │  +0.0 % ➖ │
│ diffusion_ode_edge → seq → seq           │    100 │  42.980 μs │  42.510 μs │  +1.1 % ➖ │         │          │  +0.0 % ➖ │
│                                          │    300 │ 409.915 μs │ 408.673 μs │  +0.3 % ➖ │         │          │  +0.0 % ➖ │
│                                          │   1000 │   4.675 ms │   4.610 ms │  +1.4 % ➖ │         │          │  +0.0 % ➖ │
│                                          │   3000 │  43.622 ms │  43.294 ms │  +0.8 % ➖ │         │          │  +0.0 % ➖ │
│ diffusion_ode_edge → ka → seq            │    100 │  53.239 μs │  52.398 μs │  +1.6 % ➖ │     140 │      140 │  +0.0 % ➖ │
│                                          │    300 │ 309.407 μs │ 304.438 μs │  +1.6 % ➖ │     291 │      291 │  +0.0 % ➖ │
│                                          │   1000 │   2.982 ms │   2.929 ms │  +1.8 % ➖ │    1854 │     1854 │  +0.0 % ➖ │
│                                          │   3000 │  28.599 ms │  28.361 ms │  +0.8 % ➖ │   15605 │    15605 │  +0.0 % ➖ │
│ diffusion_ode_edge → poly → seq          │    100 │  28.112 μs │  28.002 μs │  +0.4 % ➖ │       4 │        4 │  +0.0 % ➖ │
│                                          │    300 │ 250.437 μs │ 249.265 μs │  +0.5 % ➖ │       4 │        4 │  +0.0 % ➖ │
│                                          │   1000 │   2.816 ms │   2.800 ms │  +0.6 % ➖ │       4 │        4 │  +0.0 % ➖ │
│                                          │   3000 │  26.961 ms │  26.927 ms │  +0.1 % ➖ │       4 │        4 │  +0.0 % ➖ │
│ diffusion_ode_edge → thrd → seq          │    100 │  39.314 μs │  39.183 μs │  +0.3 % ➖ │      88 │       88 │  +0.0 % ➖ │
│                                          │    300 │ 267.590 μs │ 266.418 μs │  +0.4 % ➖ │      88 │       88 │  +0.0 % ➖ │
│                                          │   1000 │   2.859 ms │   2.842 ms │  +0.6 % ➖ │      88 │       88 │  +0.0 % ➖ │
│                                          │   3000 │  27.543 ms │  27.465 ms │  +0.3 % ➖ │      88 │       88 │  +0.0 % ➖ │
│ diffusion_ode_edge → seq_buf → seq       │    100 │  42.299 μs │  41.457 μs │  +2.0 % ➖ │         │          │  +0.0 % ➖ │
│                                          │    300 │ 400.929 μs │ 394.095 μs │  +1.7 % ➖ │         │          │  +0.0 % ➖ │
│                                          │   1000 │   4.565 ms │   4.514 ms │  +1.1 % ➖ │         │          │  +0.0 % ➖ │
│                                          │   3000 │  42.755 ms │  42.411 ms │  +0.8 % ➖ │         │          │  +0.0 % ➖ │
│ diffusion_ode_edge → ka_buf → seq        │    100 │  58.710 μs │  55.664 μs │  +5.5 % ❌ │     140 │      140 │  +0.0 % ➖ │
│                                          │    300 │ 325.638 μs │ 320.298 μs │  +1.7 % ➖ │     291 │      291 │  +0.0 % ➖ │
│                                          │   1000 │   3.084 ms │   3.072 ms │  +0.4 % ➖ │    1854 │     1854 │  +0.0 % ➖ │
│                                          │   3000 │  29.734 ms │  29.221 ms │  +1.8 % ➖ │   15605 │    15605 │  +0.0 % ➖ │
│ diffusion_ode_edge → poly_buf → seq      │    100 │  28.965 μs │  28.483 μs │  +1.7 % ➖ │       4 │        4 │  +0.0 % ➖ │
│                                          │    300 │ 255.486 μs │ 254.766 μs │  +0.3 % ➖ │       4 │        4 │  +0.0 % ➖ │
│                                          │   1000 │   2.863 ms │   2.851 ms │  +0.4 % ➖ │       4 │        4 │  +0.0 % ➖ │
│                                          │   3000 │  27.787 ms │  27.566 ms │  +0.8 % ➖ │       4 │        4 │  +0.0 % ➖ │
│ diffusion_ode_edge → poly_buf → ka       │    100 │  49.933 μs │  46.807 μs │  +6.7 % ❌ │      56 │       56 │  +0.0 % ➖ │
│                                          │    300 │ 385.680 μs │ 354.181 μs │  +8.9 % ❌ │      56 │       56 │  +0.0 % ➖ │
│                                          │   1000 │   4.210 ms │   3.859 ms │  +9.1 % ❌ │      56 │       56 │  +0.0 % ➖ │
│                                          │   3000 │  39.595 ms │  36.484 ms │  +8.5 % ❌ │      57 │       57 │  +0.0 % ➖ │
│ diffusion_ode_edge → poly_buf → poly     │    100 │  24.586 μs │  27.301 μs │  -9.9 % ✅ │       7 │        7 │  +0.0 % ➖ │
│                                          │    300 │ 201.126 μs │ 232.484 μs │ -13.5 % ✅ │       7 │        7 │  +0.0 % ➖ │
│                                          │   1000 │   2.164 ms │   2.519 ms │ -14.1 % ✅ │       7 │        7 │  +0.0 % ➖ │
│                                          │   3000 │  21.510 ms │  24.613 ms │ -12.6 % ✅ │       7 │        7 │  +0.0 % ➖ │
│ diffusion_ode_edge → poly_buf → thrd     │    100 │  33.843 μs │  33.151 μs │  +2.1 % ➖ │      26 │       26 │  +0.0 % ➖ │
│                                          │    300 │ 254.815 μs │ 245.037 μs │  +4.0 % ➖ │      26 │       26 │  +0.0 % ➖ │
│                                          │   1000 │   2.852 ms │   2.707 ms │  +5.4 % ❌ │      26 │       26 │  +0.0 % ➖ │
│                                          │   3000 │  27.043 ms │  25.864 ms │  +4.6 % ➖ │      26 │       26 │  +0.0 % ➖ │
│ diffusion_ode_edge → poly_buf → sprs     │    100 │  36.679 μs │  36.117 μs │  +1.6 % ➖ │       4 │        4 │  +0.0 % ➖ │
│                                          │    300 │ 320.989 μs │ 318.414 μs │  +0.8 % ➖ │       4 │        4 │  +0.0 % ➖ │
│                                          │   1000 │   3.625 ms │   3.597 ms │  +0.8 % ➖ │       4 │        4 │  +0.0 % ➖ │
│                                          │   3000 │  34.045 ms │  33.922 ms │  +0.4 % ➖ │       4 │        4 │  +0.0 % ➖ │
│ diffusion_ode_edge → thrd_buf → seq      │    100 │  42.290 μs │  44.974 μs │  -6.0 % ✅ │      88 │       88 │  +0.0 % ➖ │
│                                          │    300 │ 288.989 μs │ 310.520 μs │  -6.9 % ✅ │      88 │       88 │  +0.0 % ➖ │
│                                          │   1000 │   3.030 ms │   3.070 ms │  -1.3 % ➖ │      88 │       88 │  +0.0 % ➖ │
│                                          │   3000 │  29.006 ms │  29.098 ms │  -0.3 % ➖ │      88 │       88 │  +0.0 % ➖ │
│ kuramoto_homogeneous → assemble          │    100 │ 141.124 μs │ 138.889 μs │  +1.6 % ➖ │    1069 │     1069 │  +0.0 % ➖ │
│                                          │   1000 │   1.043 ms │ 952.648 μs │  +9.5 % ❌ │    8302 │     8302 │  +0.0 % ➖ │
│                                          │  10000 │   8.191 ms │   7.906 ms │  +3.6 % ➖ │   80302 │    80302 │  +0.0 % ➖ │
│                                          │ 100000 │  64.002 ms │  62.582 ms │  +2.3 % ➖ │  800302 │   800302 │  +0.0 % ➖ │
│ kuramoto_homogeneous → seq → seq         │    100 │   1.124 μs │   1.126 μs │  -0.2 % ➖ │         │          │  +0.0 % ➖ │
│                                          │   1000 │  11.481 μs │  11.427 μs │  +0.5 % ➖ │         │          │  +0.0 % ➖ │
│                                          │  10000 │ 127.578 μs │ 123.691 μs │  +3.1 % ➖ │         │          │  +0.0 % ➖ │
│                                          │ 100000 │   1.615 ms │   1.608 ms │  +0.5 % ➖ │         │          │  +0.0 % ➖ │
│ kuramoto_homogeneous → ka → seq          │    100 │   3.155 μs │   3.142 μs │  +0.4 % ➖ │      46 │       46 │  +0.0 % ➖ │
│                                          │   1000 │  13.530 μs │  13.566 μs │  -0.3 % ➖ │      49 │       49 │  +0.0 % ➖ │
│                                          │  10000 │ 147.646 μs │ 142.997 μs │  +3.3 % ➖ │     271 │      271 │  +0.0 % ➖ │
│                                          │ 100000 │   1.103 ms │   1.093 ms │  +0.9 % ➖ │    1239 │     1239 │  +0.0 % ➖ │
│ kuramoto_homogeneous → poly → seq        │    100 │   1.850 μs │   1.874 μs │  -1.3 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                          │   1000 │  10.680 μs │  10.926 μs │  -2.2 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                          │  10000 │  97.863 μs │ 106.379 μs │  -8.0 % ✅ │       3 │        3 │  +0.0 % ➖ │
│                                          │ 100000 │   1.090 ms │   1.105 ms │  -1.3 % ➖ │       3 │        3 │  +0.0 % ➖ │
│ kuramoto_homogeneous → thrd → seq        │    100 │  11.141 μs │  11.662 μs │  -4.5 % ➖ │      66 │       66 │  +0.0 % ➖ │
│                                          │   1000 │  21.561 μs │  21.790 μs │  -1.1 % ➖ │      66 │       66 │  +0.0 % ➖ │
│                                          │  10000 │ 111.759 μs │ 115.405 μs │  -3.2 % ➖ │      66 │       66 │  +0.0 % ➖ │
│                                          │ 100000 │ 991.080 μs │ 976.201 μs │  +1.5 % ➖ │      66 │       66 │  +0.0 % ➖ │
│ kuramoto_homogeneous → seq_buf → seq     │    100 │   1.046 μs │   1.043 μs │  +0.3 % ➖ │         │          │  +0.0 % ➖ │
│                                          │   1000 │  10.595 μs │  10.575 μs │  +0.2 % ➖ │         │          │  +0.0 % ➖ │
│                                          │  10000 │ 113.271 μs │ 110.817 μs │  +2.2 % ➖ │         │          │  +0.0 % ➖ │
│                                          │ 100000 │   1.266 ms │   1.248 ms │  +1.5 % ➖ │         │          │  +0.0 % ➖ │
│ kuramoto_homogeneous → ka_buf → seq      │    100 │   3.018 μs │   3.072 μs │  -1.7 % ➖ │      46 │       46 │  +0.0 % ➖ │
│                                          │   1000 │  12.463 μs │  12.849 μs │  -3.0 % ➖ │      49 │       49 │  +0.0 % ➖ │
│                                          │  10000 │ 137.666 μs │ 151.633 μs │  -9.2 % ✅ │     271 │      271 │  +0.0 % ➖ │
│                                          │ 100000 │   1.087 ms │   1.102 ms │  -1.4 % ➖ │    1239 │     1239 │  +0.0 % ➖ │
│ kuramoto_homogeneous → poly_buf → seq    │    100 │   2.026 μs │   2.033 μs │  -0.3 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                          │   1000 │  10.870 μs │  11.301 μs │  -3.8 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                          │  10000 │ 101.100 μs │ 103.323 μs │  -2.2 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                          │ 100000 │   1.165 ms │   1.150 ms │  +1.3 % ➖ │       3 │        3 │  +0.0 % ➖ │
│ kuramoto_homogeneous → poly_buf → ka     │    100 │   2.963 μs │   2.901 μs │  +2.1 % ➖ │      13 │       13 │  +0.0 % ➖ │
│                                          │   1000 │  21.901 μs │  21.640 μs │  +1.2 % ➖ │      37 │       37 │  +0.0 % ➖ │
│                                          │  10000 │ 171.930 μs │ 172.011 μs │  -0.0 % ➖ │      55 │       55 │  +0.0 % ➖ │
│                                          │ 100000 │   1.895 ms │   1.836 ms │  +3.2 % ➖ │      55 │       55 │  +0.0 % ➖ │
│ kuramoto_homogeneous → poly_buf → poly   │    100 │   2.693 μs │   2.725 μs │  -1.2 % ➖ │       6 │        6 │  +0.0 % ➖ │
│                                          │   1000 │  12.774 μs │  13.505 μs │  -5.4 % ✅ │       6 │        6 │  +0.0 % ➖ │
│                                          │  10000 │ 111.398 μs │ 125.063 μs │ -10.9 % ✅ │       6 │        6 │  +0.0 % ➖ │
│                                          │ 100000 │   1.328 ms │   1.472 ms │  -9.8 % ✅ │       6 │        6 │  +0.0 % ➖ │
│ kuramoto_homogeneous → poly_buf → thrd   │    100 │   7.699 μs │   7.619 μs │  +1.1 % ➖ │      25 │       25 │  +0.0 % ➖ │
│                                          │   1000 │  19.927 μs │  18.544 μs │  +7.5 % ❌ │      25 │       25 │  +0.0 % ➖ │
│                                          │  10000 │ 150.341 μs │ 142.756 μs │  +5.3 % ❌ │      25 │       25 │  +0.0 % ➖ │
│                                          │ 100000 │   2.216 ms │   2.141 ms │  +3.5 % ➖ │      25 │       25 │  +0.0 % ➖ │
│ kuramoto_homogeneous → poly_buf → sprs   │    100 │   2.551 μs │   2.553 μs │  -0.1 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                          │   1000 │  15.810 μs │  15.719 μs │  +0.6 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                          │  10000 │ 153.437 μs │ 153.827 μs │  -0.3 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                          │ 100000 │   1.823 ms │   1.815 ms │  +0.5 % ➖ │       3 │        3 │  +0.0 % ➖ │
│ kuramoto_homogeneous → thrd_buf → seq    │    100 │  11.492 μs │  11.391 μs │  +0.9 % ➖ │      66 │       66 │  +0.0 % ➖ │
│                                          │   1000 │  21.359 μs │  23.244 μs │  -8.1 % ✅ │      66 │       66 │  +0.0 % ➖ │
│                                          │  10000 │ 113.271 μs │ 127.869 μs │ -11.4 % ✅ │      66 │       66 │  +0.0 % ➖ │
│                                          │ 100000 │ 994.817 μs │   1.007 ms │  -1.2 % ➖ │      66 │       66 │  +0.0 % ➖ │
│ kuramoto_heterogeneous → assemble        │    100 │ 173.424 μs │ 171.099 μs │  +1.4 % ➖ │     823 │      823 │  +0.0 % ➖ │
│                                          │   1000 │ 948.118 μs │ 917.582 μs │  +3.3 % ➖ │    5365 │     5365 │  +0.0 % ➖ │
│                                          │  10000 │   9.933 ms │   9.800 ms │  +1.4 % ➖ │   50394 │    50394 │  +0.0 % ➖ │
│                                          │ 100000 │  97.196 ms │  95.822 ms │  +1.4 % ➖ │  500411 │   500411 │  +0.0 % ➖ │
│ kuramoto_heterogeneous → seq → seq       │    100 │   1.113 μs │   1.126 μs │  -1.2 % ➖ │         │          │  +0.0 % ➖ │
│                                          │   1000 │  11.061 μs │  11.001 μs │  +0.5 % ➖ │         │          │  +0.0 % ➖ │
│                                          │  10000 │ 119.803 μs │ 118.301 μs │  +1.3 % ➖ │         │          │  +0.0 % ➖ │
│                                          │ 100000 │   1.555 ms │   1.573 ms │  -1.2 % ➖ │         │          │  +0.0 % ➖ │
│ kuramoto_heterogeneous → ka → seq        │    100 │   4.620 μs │   4.503 μs │  +2.6 % ➖ │      76 │       76 │  +0.0 % ➖ │
│                                          │   1000 │  14.577 μs │  14.567 μs │  +0.1 % ➖ │      77 │       77 │  +0.0 % ➖ │
│                                          │  10000 │ 167.973 μs │ 164.747 μs │  +2.0 % ➖ │     378 │      378 │  +0.0 % ➖ │
│                                          │ 100000 │   1.096 ms │   1.103 ms │  -0.6 % ➖ │    1346 │     1346 │  +0.0 % ➖ │
│ kuramoto_heterogeneous → poly → seq      │    100 │   2.596 μs │   2.596 μs │  +0.0 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                          │   1000 │  11.362 μs │  11.451 μs │  -0.8 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                          │  10000 │  97.171 μs │  99.386 μs │  -2.2 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                          │ 100000 │   1.044 ms │   1.097 ms │  -4.9 % ➖ │       5 │        5 │  +0.0 % ➖ │
│ kuramoto_heterogeneous → thrd → seq      │    100 │  22.582 μs │  21.430 μs │  +5.4 % ❌ │     110 │      110 │  +0.0 % ➖ │
│                                          │   1000 │  31.870 μs │  35.596 μs │ -10.5 % ✅ │     110 │      110 │  +0.0 % ➖ │
│                                          │  10000 │ 126.025 μs │ 126.797 μs │  -0.6 % ➖ │     110 │      110 │  +0.0 % ➖ │
│                                          │ 100000 │ 968.347 μs │ 967.815 μs │  +0.1 % ➖ │     110 │      110 │  +0.0 % ➖ │
│ kuramoto_heterogeneous → seq_buf → seq   │    100 │   1.026 μs │   1.025 μs │  +0.1 % ➖ │         │          │  +0.0 % ➖ │
│                                          │   1000 │  10.249 μs │  10.239 μs │  +0.1 % ➖ │         │          │  +0.0 % ➖ │
│                                          │  10000 │ 105.968 μs │ 105.827 μs │  +0.1 % ➖ │         │          │  +0.0 % ➖ │
│                                          │ 100000 │   1.247 ms │   1.211 ms │  +2.9 % ➖ │         │          │  +0.0 % ➖ │
│ kuramoto_heterogeneous → ka_buf → seq    │    100 │   4.492 μs │   4.476 μs │  +0.4 % ➖ │      76 │       76 │  +0.0 % ➖ │
│                                          │   1000 │  13.796 μs │  13.781 μs │  +0.1 % ➖ │      77 │       77 │  +0.0 % ➖ │
│                                          │  10000 │ 174.345 μs │ 177.141 μs │  -1.6 % ➖ │     378 │      378 │  +0.0 % ➖ │
│                                          │ 100000 │   1.092 ms │   1.083 ms │  +0.9 % ➖ │    1346 │     1346 │  +0.0 % ➖ │
│ kuramoto_heterogeneous → poly_buf → seq  │    100 │   2.658 μs │   2.755 μs │  -3.5 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                          │   1000 │  12.870 μs │  11.652 μs │ +10.4 % ❌ │       5 │        5 │  +0.0 % ➖ │
│                                          │  10000 │ 100.467 μs │ 103.894 μs │  -3.3 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                          │ 100000 │   1.241 ms │   1.147 ms │  +8.2 % ❌ │       5 │        5 │  +0.0 % ➖ │
│ kuramoto_heterogeneous → poly_buf → ka   │    100 │   3.385 μs │   3.292 μs │  +2.8 % ➖ │      15 │       15 │  +0.0 % ➖ │
│                                          │   1000 │  21.460 μs │  21.280 μs │  +0.8 % ➖ │      39 │       39 │  +0.0 % ➖ │
│                                          │  10000 │ 160.640 μs │ 161.161 μs │  -0.3 % ➖ │      57 │       57 │  +0.0 % ➖ │
│                                          │ 100000 │   1.766 ms │   1.766 ms │  +0.0 % ➖ │      57 │       57 │  +0.0 % ➖ │
│ kuramoto_heterogeneous → poly_buf → poly │    100 │   3.228 μs │   3.244 μs │  -0.5 % ➖ │       8 │        8 │  +0.0 % ➖ │
│                                          │   1000 │  13.305 μs │  13.054 μs │  +1.9 % ➖ │       8 │        8 │  +0.0 % ➖ │
│                                          │  10000 │ 111.268 μs │ 111.779 μs │  -0.5 % ➖ │       8 │        8 │  +0.0 % ➖ │
│                                          │ 100000 │   1.352 ms │   1.303 ms │  +3.8 % ➖ │       8 │        8 │  +0.0 % ➖ │
│ kuramoto_heterogeneous → poly_buf → thrd │    100 │   8.175 μs │   8.004 μs │  +2.1 % ➖ │      27 │       27 │  +0.0 % ➖ │
│                                          │   1000 │  20.177 μs │  20.899 μs │  -3.5 % ➖ │      27 │       27 │  +0.0 % ➖ │
│                                          │  10000 │ 138.829 μs │ 141.204 μs │  -1.7 % ➖ │      27 │       27 │  +0.0 % ➖ │
│                                          │ 100000 │   2.554 ms │   2.202 ms │ +16.0 % ❌ │      27 │       27 │  +0.0 % ➖ │
│ kuramoto_heterogeneous → poly_buf → sprs │    100 │   2.943 μs │   2.964 μs │  -0.7 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                          │   1000 │  15.689 μs │  16.390 μs │  -4.3 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                          │  10000 │ 140.743 μs │ 141.985 μs │  -0.9 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                          │ 100000 │   1.740 ms │   1.804 ms │  -3.6 % ➖ │       5 │        5 │  +0.0 % ➖ │
│ kuramoto_heterogeneous → thrd_buf → seq  │    100 │  25.628 μs │  23.875 μs │  +7.3 % ❌ │     110 │      110 │  +0.0 % ➖ │
│                                          │   1000 │  32.831 μs │  32.180 μs │  +2.0 % ➖ │     110 │      110 │  +0.0 % ➖ │
│                                          │  10000 │ 125.986 μs │ 141.113 μs │ -10.7 % ✅ │     110 │      110 │  +0.0 % ➖ │
│                                          │ 100000 │ 996.219 μs │ 969.949 μs │  +2.7 % ➖ │     110 │      110 │  +0.0 % ➖ │
│ powergrid → assemble                     │    100 │ 248.354 μs │ 244.346 μs │  +1.6 % ➖ │    1602 │     1602 │  +0.0 % ➖ │
│                                          │   1000 │   1.449 ms │   1.402 ms │  +3.3 % ➖ │   13883 │    13883 │  +0.0 % ➖ │
│                                          │  10000 │  16.301 ms │  16.155 ms │  +0.9 % ➖ │  144648 │   144648 │  +0.0 % ➖ │
│                                          │ 100000 │ 201.533 ms │ 194.395 ms │  +3.7 % ➖ │ 1449929 │  1449929 │  +0.0 % ➖ │
│ powergrid → seq → seq                    │    100 │   7.351 μs │   7.461 μs │  -1.5 % ➖ │         │          │  +0.0 % ➖ │
│                                          │   1000 │  73.146 μs │  73.888 μs │  -1.0 % ➖ │         │          │  +0.0 % ➖ │
│                                          │  10000 │ 752.504 μs │ 756.692 μs │  -0.6 % ➖ │         │          │  +0.0 % ➖ │
│                                          │ 100000 │   7.997 ms │   8.133 ms │  -1.7 % ➖ │         │          │  +0.0 % ➖ │
│ powergrid → ka → seq                     │    100 │  11.046 μs │  11.131 μs │  -0.8 % ➖ │      76 │       76 │  +0.0 % ➖ │
│                                          │   1000 │  77.445 μs │  77.424 μs │  +0.0 % ➖ │      77 │       77 │  +0.0 % ➖ │
│                                          │  10000 │ 502.888 μs │ 506.495 μs │  -0.7 % ➖ │     378 │      378 │  +0.0 % ➖ │
│                                          │ 100000 │   3.649 ms │   3.596 ms │  +1.5 % ➖ │    1346 │     1346 │  +0.0 % ➖ │
│ powergrid → poly → seq                   │    100 │   4.733 μs │   4.739 μs │  -0.1 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                          │   1000 │  33.783 μs │  33.522 μs │  +0.8 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                          │  10000 │ 315.438 μs │ 321.179 μs │  -1.8 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                          │ 100000 │   3.487 ms │   3.531 ms │  -1.2 % ➖ │       5 │        5 │  +0.0 % ➖ │
│ powergrid → thrd → seq                   │    100 │  25.237 μs │  20.618 μs │ +22.4 % ❌ │     110 │      110 │  +0.0 % ➖ │
│                                          │   1000 │  61.725 μs │  52.969 μs │ +16.5 % ❌ │     110 │      110 │  +0.0 % ➖ │
│                                          │  10000 │ 366.553 μs │ 367.476 μs │  -0.3 % ➖ │     110 │      110 │  +0.0 % ➖ │
│                                          │ 100000 │   3.359 ms │   3.328 ms │  +0.9 % ➖ │     110 │      110 │  +0.0 % ➖ │
│ powergrid → seq_buf → seq                │    100 │   7.637 μs │   7.601 μs │  +0.5 % ➖ │         │          │  +0.0 % ➖ │
│                                          │   1000 │  75.390 μs │  75.231 μs │  +0.2 % ➖ │         │          │  +0.0 % ➖ │
│                                          │  10000 │ 778.353 μs │ 771.349 μs │  +0.9 % ➖ │         │          │  +0.0 % ➖ │
│                                          │ 100000 │   8.284 ms │   8.288 ms │  -0.0 % ➖ │         │          │  +0.0 % ➖ │
│ powergrid → ka_buf → seq                 │    100 │  11.091 μs │  11.226 μs │  -1.2 % ➖ │      76 │       76 │  +0.0 % ➖ │
│                                          │   1000 │  79.769 μs │  80.060 μs │  -0.4 % ➖ │      77 │       77 │  +0.0 % ➖ │
│                                          │  10000 │ 543.915 μs │ 562.379 μs │  -3.3 % ➖ │     378 │      378 │  +0.0 % ➖ │
│                                          │ 100000 │   3.838 ms │   3.752 ms │  +2.3 % ➖ │    1346 │     1346 │  +0.0 % ➖ │
│ powergrid → poly_buf → seq               │    100 │   5.326 μs │   5.332 μs │  -0.1 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                          │   1000 │  36.268 μs │  38.913 μs │  -6.8 % ✅ │       5 │        5 │  +0.0 % ➖ │
│                                          │  10000 │ 368.728 μs │ 373.086 μs │  -1.2 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                          │ 100000 │   3.882 ms │   4.114 ms │  -5.6 % ✅ │       5 │        5 │  +0.0 % ➖ │
│ powergrid → poly_buf → ka                │    100 │   6.625 μs │   6.377 μs │  +3.9 % ➖ │      15 │       15 │  +0.0 % ➖ │
│                                          │   1000 │  54.422 μs │  56.274 μs │  -3.3 % ➖ │      57 │       57 │  +0.0 % ➖ │
│                                          │  10000 │ 479.074 μs │ 453.857 μs │  +5.6 % ❌ │      57 │       57 │  +0.0 % ➖ │
│                                          │ 100000 │   5.044 ms │   5.238 ms │  -3.7 % ➖ │      57 │       57 │  +0.0 % ➖ │
│ powergrid → poly_buf → poly              │    100 │   5.931 μs │   5.707 μs │  +3.9 % ➖ │       8 │        8 │  +0.0 % ➖ │
│                                          │   1000 │  41.137 μs │  38.382 μs │  +7.2 % ❌ │       8 │        8 │  +0.0 % ➖ │
│                                          │  10000 │ 381.262 μs │ 357.287 μs │  +6.7 % ❌ │       8 │        8 │  +0.0 % ➖ │
│                                          │ 100000 │   4.569 ms │   4.504 ms │  +1.4 % ➖ │       8 │        8 │  +0.0 % ➖ │
│ powergrid → poly_buf → thrd              │    100 │  11.121 μs │  10.786 μs │  +3.1 % ➖ │      27 │       27 │  +0.0 % ➖ │
│                                          │   1000 │  50.324 μs │  47.368 μs │  +6.2 % ❌ │      27 │       27 │  +0.0 % ➖ │
│                                          │  10000 │ 459.447 μs │ 442.435 μs │  +3.8 % ➖ │      27 │       27 │  +0.0 % ➖ │
│                                          │ 100000 │   6.494 ms │   6.400 ms │  +1.5 % ➖ │      27 │       27 │  +0.0 % ➖ │
│ powergrid → poly_buf → sprs              │    100 │   6.016 μs │   5.817 μs │  +3.4 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                          │   1000 │  46.357 μs │  43.953 μs │  +5.5 % ❌ │       5 │        5 │  +0.0 % ➖ │
│                                          │  10000 │ 451.943 μs │ 429.491 μs │  +5.2 % ❌ │       5 │        5 │  +0.0 % ➖ │
│                                          │ 100000 │   5.101 ms │   4.980 ms │  +2.4 % ➖ │       5 │        5 │  +0.0 % ➖ │
│ powergrid → thrd_buf → seq               │    100 │  24.746 μs │  25.467 μs │  -2.8 % ➖ │     110 │      110 │  +0.0 % ➖ │
│                                          │   1000 │  63.529 μs │  63.999 μs │  -0.7 % ➖ │     110 │      110 │  +0.0 % ➖ │
│                                          │  10000 │ 407.330 μs │ 391.611 μs │  +4.0 % ➖ │     110 │      110 │  +0.0 % ➖ │
│                                          │ 100000 │   3.578 ms │   3.552 ms │  +0.7 % ➖ │     110 │      110 │  +0.0 % ➖ │
└──────────────────────────────────────────┴────────┴────────────┴────────────┴────────────┴─────────┴──────────┴────────────┘

https://github.com/JuliaDynamics/NetworkDynamics.jl/actions/runs/12930612364/artifacts/2474799937

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