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

metadata overhaul #164

Merged
merged 17 commits into from
Oct 23, 2024
Merged

metadata overhaul #164

merged 17 commits into from
Oct 23, 2024

Conversation

hexaeder
Copy link
Member

If components share the same metadata objects (for example because
of `vertices = [v1, v1, v2]`), create copys to dealias!
Also, for homogenous networks all components are copied on NW construction.
can be used to change single things about them, like
the name for example

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

track the hashes of aliased vertex/edge functions, such that we can
warn when they are changed. For large networks which do not use the meta
data machinery this is much better then eagerly copying every component.

This comment has been minimized.

Copy link
Contributor

Benchmark Results

┌────────────────────────────────────────────┬────────┬────────────┬────────────┬────────────┬──────────┬──────────┬────────────┐
│ Key                                        │        │ Time       │            │            │ Allocs   │          │            │
│                                            │        │ target     │ baseline   │            │ target   │ baseline │            │
├────────────────────────────────────────────┼────────┼────────────┼────────────┼────────────┼──────────┼──────────┼────────────┤
│ diffusion → static_edge → assemble         │    100 │   1.275 ms │   1.048 ms │ +21.6 % ❌ │    10822 │     5551 │ +95.0 % ❌ │
│                                            │    300 │  10.546 ms │   8.887 ms │ +18.7 % ❌ │    91834 │    46161 │ +98.9 % ❌ │
│                                            │   1000 │ 141.345 ms │ 122.900 ms │ +15.0 % ❌ │  1005344 │   503270 │ +99.8 % ❌ │
│                                            │   3000 │    1.787 s │    1.188 s │ +50.5 % ❌ │  9015350 │  4509276 │ +99.9 % ❌ │
│ diffusion → static_edge → seq → seq        │    100 │  11.136 μs │  11.155 μs │  -0.2 % ➖ │          │          │  +0.0 % ➖ │
│                                            │    300 │ 115.816 μs │ 116.577 μs │  -0.7 % ➖ │          │          │  +0.0 % ➖ │
│                                            │   1000 │   1.357 ms │   1.359 ms │  -0.1 % ➖ │          │          │  +0.0 % ➖ │
│                                            │   3000 │  13.807 ms │  13.635 ms │  +1.3 % ➖ │          │          │  +0.0 % ➖ │
│ diffusion → static_edge → ka → seq         │    100 │  20.659 μs │  20.498 μs │  +0.8 % ➖ │       71 │       71 │  +0.0 % ➖ │
│                                            │    300 │ 154.128 μs │ 156.231 μs │  -1.3 % ➖ │      156 │      156 │  +0.0 % ➖ │
│                                            │   1000 │   1.452 ms │   1.440 ms │  +0.9 % ➖ │     1049 │     1049 │  +0.0 % ➖ │
│                                            │   3000 │  13.206 ms │  13.071 ms │  +1.0 % ➖ │     8900 │     8900 │  +0.0 % ➖ │
│ diffusion → static_edge → poly → seq       │    100 │  14.487 μs │  14.848 μs │  -2.4 % ➖ │        2 │        2 │  +0.0 % ➖ │
│                                            │    300 │ 130.353 μs │ 132.517 μs │  -1.6 % ➖ │        2 │        2 │  +0.0 % ➖ │
│                                            │   1000 │   1.465 ms │   1.487 ms │  -1.4 % ➖ │        2 │        2 │  +0.0 % ➖ │
│                                            │   3000 │  14.496 ms │  14.659 ms │  -1.1 % ➖ │        2 │        2 │  +0.0 % ➖ │
│ diffusion → static_edge → thrd → seq       │    100 │  18.634 μs │  18.895 μs │  -1.4 % ➖ │       44 │       44 │  +0.0 % ➖ │
│                                            │    300 │ 146.483 μs │ 150.210 μs │  -2.5 % ➖ │       44 │       44 │  +0.0 % ➖ │
│                                            │   1000 │   1.349 ms │   1.347 ms │  +0.2 % ➖ │       44 │       44 │  +0.0 % ➖ │
│                                            │   3000 │  13.228 ms │  12.927 ms │  +2.3 % ➖ │       44 │       44 │  +0.0 % ➖ │
│ diffusion → static_edge → seq_buf → seq    │    100 │  12.704 μs │  12.594 μs │  +0.9 % ➖ │          │          │  +0.0 % ➖ │
│                                            │    300 │ 130.203 μs │ 130.363 μs │  -0.1 % ➖ │          │          │  +0.0 % ➖ │
│                                            │   1000 │   1.542 ms │   1.541 ms │  +0.1 % ➖ │          │          │  +0.0 % ➖ │
│                                            │   3000 │  15.190 ms │  14.868 ms │  +2.2 % ➖ │          │          │  +0.0 % ➖ │
│ diffusion → static_edge → ka_buf → seq     │    100 │  24.206 μs │  26.189 μs │  -7.6 % ✅ │       67 │       67 │  +0.0 % ➖ │
│                                            │    300 │ 174.254 μs │ 180.497 μs │  -3.5 % ➖ │      133 │      133 │  +0.0 % ➖ │
│                                            │   1000 │   1.640 ms │   1.662 ms │  -1.3 % ➖ │      803 │      803 │  +0.0 % ➖ │
│                                            │   3000 │  15.337 ms │  15.020 ms │  +2.1 % ➖ │     6701 │     6701 │  +0.0 % ➖ │
│ diffusion → static_edge → poly_buf → seq   │    100 │  21.010 μs │  19.807 μs │  +6.1 % ❌ │        2 │        2 │  +0.0 % ➖ │
│                                            │    300 │ 187.570 μs │ 179.695 μs │  +4.4 % ➖ │        2 │        2 │  +0.0 % ➖ │
│                                            │   1000 │   2.115 ms │   2.011 ms │  +5.2 % ❌ │        2 │        2 │  +0.0 % ➖ │
│                                            │   3000 │  19.532 ms │  18.559 ms │  +5.2 % ❌ │        2 │        2 │  +0.0 % ➖ │
│ diffusion → static_edge → poly_buf → ka    │    100 │  44.443 μs │  43.973 μs │  +1.1 % ➖ │       88 │       88 │  +0.0 % ➖ │
│                                            │    300 │ 281.565 μs │ 280.914 μs │  +0.2 % ➖ │      106 │      106 │  +0.0 % ➖ │
│                                            │   1000 │   2.969 ms │   2.945 ms │  +0.8 % ➖ │      106 │      106 │  +0.0 % ➖ │
│                                            │   3000 │  27.068 ms │  27.056 ms │  +0.0 % ➖ │      108 │      108 │  +0.0 % ➖ │
│ diffusion → static_edge → poly_buf → poly  │    100 │  12.434 μs │  12.428 μs │  +0.0 % ➖ │        5 │        5 │  +0.0 % ➖ │
│                                            │    300 │ 100.247 μs │ 100.247 μs │  +0.0 % ➖ │        5 │        5 │  +0.0 % ➖ │
│                                            │   1000 │   1.099 ms │   1.096 ms │  +0.3 % ➖ │        5 │        5 │  +0.0 % ➖ │
│                                            │   3000 │  10.979 ms │  10.844 ms │  +1.2 % ➖ │        5 │        5 │  +0.0 % ➖ │
│ diffusion → static_edge → poly_buf → thrd  │    100 │  22.852 μs │  23.734 μs │  -3.7 % ➖ │       24 │       24 │  +0.0 % ➖ │
│                                            │    300 │ 155.861 μs │ 163.365 μs │  -4.6 % ➖ │       24 │       24 │  +0.0 % ➖ │
│                                            │   1000 │   1.616 ms │   1.739 ms │  -7.0 % ✅ │       24 │       24 │  +0.0 % ➖ │
│                                            │   3000 │  18.576 ms │  18.045 ms │  +2.9 % ➖ │       24 │       24 │  +0.0 % ➖ │
│ diffusion → static_edge → poly_buf → sprs  │    100 │  17.092 μs │  18.163 μs │  -5.9 % ✅ │        2 │        2 │  +0.0 % ➖ │
│                                            │    300 │ 146.243 μs │ 156.883 μs │  -6.8 % ✅ │        2 │        2 │  +0.0 % ➖ │
│                                            │   1000 │   1.626 ms │   1.744 ms │  -6.8 % ✅ │        2 │        2 │  +0.0 % ➖ │
│                                            │   3000 │  14.981 ms │  15.984 ms │  -6.3 % ✅ │        2 │        2 │  +0.0 % ➖ │
│ diffusion → static_edge → thrd_buf → seq   │    100 │  25.527 μs │  24.526 μs │  +4.1 % ➖ │       44 │       44 │  +0.0 % ➖ │
│                                            │    300 │ 197.919 μs │ 191.627 μs │  +3.3 % ➖ │       44 │       44 │  +0.0 % ➖ │
│                                            │   1000 │   1.647 ms │   1.673 ms │  -1.6 % ➖ │       44 │       44 │  +0.0 % ➖ │
│                                            │   3000 │  14.844 ms │  14.750 ms │  +0.6 % ➖ │       44 │       44 │  +0.0 % ➖ │
│ diffusion → ode_edge → assemble            │    100 │   2.143 ms │   2.015 ms │  +6.3 % ❌ │    13327 │     8055 │ +65.5 % ❌ │
│                                            │    300 │  18.876 ms │  17.658 ms │  +6.9 % ❌ │   114339 │    68665 │ +66.5 % ❌ │
│                                            │   1000 │ 228.331 ms │ 205.177 ms │ +11.3 % ❌ │  1255346 │   753272 │ +66.7 % ❌ │
│                                            │   3000 │    2.813 s │    2.291 s │ +22.8 % ❌ │ 11265352 │  6759278 │ +66.7 % ❌ │
│ diffusion → ode_edge → seq → seq           │    100 │  41.581 μs │  41.548 μs │  +0.1 % ➖ │          │          │  +0.0 % ➖ │
│                                            │    300 │ 395.651 μs │ 396.380 μs │  -0.2 % ➖ │          │          │  +0.0 % ➖ │
│                                            │   1000 │   4.531 ms │   4.519 ms │  +0.3 % ➖ │          │          │  +0.0 % ➖ │
│                                            │   3000 │  42.967 ms │  42.246 ms │  +1.7 % ➖ │          │          │  +0.0 % ➖ │
│ diffusion → ode_edge → ka → seq            │    100 │  53.109 μs │  55.253 μs │  -3.9 % ➖ │       71 │       71 │  +0.0 % ➖ │
│                                            │    300 │ 338.624 μs │ 350.304 μs │  -3.3 % ➖ │      156 │      156 │  +0.0 % ➖ │
│                                            │   1000 │   3.226 ms │   3.223 ms │  +0.1 % ➖ │     1049 │     1049 │  +0.0 % ➖ │
│                                            │   3000 │  31.105 ms │  30.925 ms │  +0.6 % ➖ │     8900 │     8900 │  +0.0 % ➖ │
│ diffusion → ode_edge → poly → seq          │    100 │  34.996 μs │  35.727 μs │  -2.0 % ➖ │        2 │        2 │  +0.0 % ➖ │
│                                            │    300 │ 311.814 μs │ 320.869 μs │  -2.8 % ➖ │        2 │        2 │  +0.0 % ➖ │
│                                            │   1000 │   3.467 ms │   3.552 ms │  -2.4 % ➖ │        2 │        2 │  +0.0 % ➖ │
│                                            │   3000 │  32.920 ms │  34.115 ms │  -3.5 % ➖ │        2 │        2 │  +0.0 % ➖ │
│ diffusion → ode_edge → thrd → seq          │    100 │  40.686 μs │  41.377 μs │  -1.7 % ➖ │       44 │       44 │  +0.0 % ➖ │
│                                            │    300 │ 323.626 μs │ 336.869 μs │  -3.9 % ➖ │       44 │       44 │  +0.0 % ➖ │
│                                            │   1000 │   3.090 ms │   3.095 ms │  -0.1 % ➖ │       44 │       44 │  +0.0 % ➖ │
│                                            │   3000 │  29.310 ms │  29.775 ms │  -1.6 % ➖ │       44 │       44 │  +0.0 % ➖ │
│ diffusion → ode_edge → seq_buf → seq       │    100 │  40.956 μs │  40.745 μs │  +0.5 % ➖ │          │          │  +0.0 % ➖ │
│                                            │    300 │ 387.926 μs │ 384.487 μs │  +0.9 % ➖ │          │          │  +0.0 % ➖ │
│                                            │   1000 │   4.501 ms │   4.363 ms │  +3.2 % ➖ │          │          │  +0.0 % ➖ │
│                                            │   3000 │  41.751 ms │  41.390 ms │  +0.9 % ➖ │          │          │  +0.0 % ➖ │
│ diffusion → ode_edge → ka_buf → seq        │    100 │  56.265 μs │  58.660 μs │  -4.1 % ➖ │       67 │       67 │  +0.0 % ➖ │
│                                            │    300 │ 345.998 μs │ 359.541 μs │  -3.8 % ➖ │      133 │      133 │  +0.0 % ➖ │
│                                            │   1000 │   3.344 ms │   3.375 ms │  -0.9 % ➖ │      803 │      803 │  +0.0 % ➖ │
│                                            │   3000 │  32.423 ms │  32.624 ms │  -0.6 % ➖ │     6701 │     6701 │  +0.0 % ➖ │
│ diffusion → ode_edge → poly_buf → seq      │    100 │  38.422 μs │  40.275 μs │  -4.6 % ➖ │        2 │        2 │  +0.0 % ➖ │
│                                            │    300 │ 345.105 μs │ 361.705 μs │  -4.6 % ➖ │        2 │        2 │  +0.0 % ➖ │
│                                            │   1000 │   3.807 ms │   4.018 ms │  -5.3 % ✅ │        2 │        2 │  +0.0 % ➖ │
│                                            │   3000 │  36.231 ms │  38.197 ms │  -5.1 % ✅ │        2 │        2 │  +0.0 % ➖ │
│ diffusion → ode_edge → poly_buf → ka       │    100 │  65.974 μs │  65.772 μs │  +0.3 % ➖ │      106 │      106 │  +0.0 % ➖ │
│                                            │    300 │ 468.557 μs │ 469.847 μs │  -0.3 % ➖ │      106 │      106 │  +0.0 % ➖ │
│                                            │   1000 │   5.042 ms │   5.022 ms │  +0.4 % ➖ │      106 │      106 │  +0.0 % ➖ │
│                                            │   3000 │  46.675 ms │  46.468 ms │  +0.4 % ➖ │      108 │      108 │  +0.0 % ➖ │
│ diffusion → ode_edge → poly_buf → poly     │    100 │  26.029 μs │  26.109 μs │  -0.3 % ➖ │        5 │        5 │  +0.0 % ➖ │
│                                            │    300 │ 226.905 μs │ 224.869 μs │  +0.9 % ➖ │        5 │        5 │  +0.0 % ➖ │
│                                            │   1000 │   2.413 ms │   2.388 ms │  +1.0 % ➖ │        5 │        5 │  +0.0 % ➖ │
│                                            │   3000 │  25.541 ms │  24.928 ms │  +2.5 % ➖ │        5 │        5 │  +0.0 % ➖ │
│ diffusion → ode_edge → poly_buf → thrd     │    100 │  37.180 μs │  36.568 μs │  +1.7 % ➖ │       24 │       24 │  +0.0 % ➖ │
│                                            │    300 │ 290.593 μs │ 284.380 μs │  +2.2 % ➖ │       24 │       24 │  +0.0 % ➖ │
│                                            │   1000 │   3.129 ms │   3.021 ms │  +3.6 % ➖ │       24 │       24 │  +0.0 % ➖ │
│                                            │   3000 │  33.623 ms │  33.736 ms │  -0.3 % ➖ │       24 │       24 │  +0.0 % ➖ │
│ diffusion → ode_edge → poly_buf → sprs     │    100 │  34.785 μs │  32.951 μs │  +5.6 % ❌ │        2 │        2 │  +0.0 % ➖ │
│                                            │    300 │ 309.138 μs │ 298.487 μs │  +3.6 % ➖ │        2 │        2 │  +0.0 % ➖ │
│                                            │   1000 │   3.435 ms │   3.309 ms │  +3.8 % ➖ │        2 │        2 │  +0.0 % ➖ │
│                                            │   3000 │  32.778 ms │  31.412 ms │  +4.3 % ➖ │        2 │        2 │  +0.0 % ➖ │
│ diffusion → ode_edge → thrd_buf → seq      │    100 │  46.296 μs │  46.466 μs │  -0.4 % ➖ │       44 │       44 │  +0.0 % ➖ │
│                                            │    300 │ 376.695 μs │ 375.521 μs │  +0.3 % ➖ │       44 │       44 │  +0.0 % ➖ │
│                                            │   1000 │   3.304 ms │   3.247 ms │  +1.7 % ➖ │       44 │       44 │  +0.0 % ➖ │
│                                            │   3000 │  31.818 ms │  31.076 ms │  +2.4 % ➖ │       44 │       44 │  +0.0 % ➖ │
│ kuramoto → homogeneous → assemble          │    100 │ 158.046 μs │ 126.807 μs │ +24.6 % ❌ │     1209 │      741 │ +63.2 % ❌ │
│                                            │   1000 │   1.559 ms │   1.307 ms │ +19.3 % ❌ │     9344 │     5270 │ +77.3 % ❌ │
│                                            │  10000 │  10.782 ms │   8.588 ms │ +25.5 % ❌ │    90354 │    50280 │ +79.7 % ❌ │
│                                            │ 100000 │  96.999 ms │  87.398 ms │ +11.0 % ❌ │   900366 │   500292 │ +80.0 % ❌ │
│ kuramoto → homogeneous → seq → seq         │    100 │   1.141 μs │   1.266 μs │  -9.9 % ✅ │          │          │  +0.0 % ➖ │
│                                            │   1000 │  11.957 μs │  11.897 μs │  +0.5 % ➖ │          │          │  +0.0 % ➖ │
│                                            │  10000 │ 128.159 μs │ 128.701 μs │  -0.4 % ➖ │          │          │  +0.0 % ➖ │
│                                            │ 100000 │   1.792 ms │   1.728 ms │  +3.7 % ➖ │          │          │  +0.0 % ➖ │
│ kuramoto → homogeneous → ka → seq          │    100 │   2.408 μs │   2.375 μs │  +1.4 % ➖ │       30 │       30 │  +0.0 % ➖ │
│                                            │   1000 │  13.691 μs │  13.500 μs │  +1.4 % ➖ │       32 │       32 │  +0.0 % ➖ │
│                                            │  10000 │ 158.726 μs │ 158.426 μs │  +0.2 % ➖ │      177 │      177 │  +0.0 % ➖ │
│                                            │ 100000 │   1.147 ms │   1.139 ms │  +0.8 % ➖ │      793 │      793 │  +0.0 % ➖ │
│ kuramoto → homogeneous → poly → seq        │    100 │   1.859 μs │   1.889 μs │  -1.6 % ➖ │        2 │        2 │  +0.0 % ➖ │
│                                            │   1000 │  12.759 μs │  12.614 μs │  +1.1 % ➖ │        2 │        2 │  +0.0 % ➖ │
│                                            │  10000 │ 115.806 μs │ 116.778 μs │  -0.8 % ➖ │        2 │        2 │  +0.0 % ➖ │
│                                            │ 100000 │   1.238 ms │   1.197 ms │  +3.5 % ➖ │        2 │        2 │  +0.0 % ➖ │
│ kuramoto → homogeneous → thrd → seq        │    100 │   7.063 μs │   7.008 μs │  +0.8 % ➖ │       44 │       44 │  +0.0 % ➖ │
│                                            │   1000 │  17.864 μs │  18.023 μs │  -0.9 % ➖ │       44 │       44 │  +0.0 % ➖ │
│                                            │  10000 │ 124.653 μs │ 126.326 μs │  -1.3 % ➖ │       44 │       44 │  +0.0 % ➖ │
│                                            │ 100000 │   1.065 ms │   1.062 ms │  +0.3 % ➖ │       44 │       44 │  +0.0 % ➖ │
│ kuramoto → homogeneous → seq_buf → seq     │    100 │   1.300 μs │   1.316 μs │  -1.2 % ➖ │          │          │  +0.0 % ➖ │
│                                            │   1000 │  13.165 μs │  13.160 μs │  +0.0 % ➖ │          │          │  +0.0 % ➖ │
│                                            │  10000 │ 137.246 μs │ 136.474 μs │  +0.6 % ➖ │          │          │  +0.0 % ➖ │
│                                            │ 100000 │   1.500 ms │   1.518 ms │  -1.2 % ➖ │          │          │  +0.0 % ➖ │
│ kuramoto → homogeneous → ka_buf → seq      │    100 │   2.550 μs │   2.589 μs │  -1.5 % ➖ │       28 │       28 │  +0.0 % ➖ │
│                                            │   1000 │  14.928 μs │  14.978 μs │  -0.3 % ➖ │       30 │       30 │  +0.0 % ➖ │
│                                            │  10000 │ 168.745 μs │ 172.211 μs │  -2.0 % ➖ │      166 │      166 │  +0.0 % ➖ │
│                                            │ 100000 │   1.281 ms │   1.297 ms │  -1.2 % ➖ │      694 │      694 │  +0.0 % ➖ │
│ kuramoto → homogeneous → poly_buf → seq    │    100 │   2.323 μs │   2.221 μs │  +4.6 % ➖ │        2 │        2 │  +0.0 % ➖ │
│                                            │   1000 │  16.070 μs │  16.341 μs │  -1.7 % ➖ │        2 │        2 │  +0.0 % ➖ │
│                                            │  10000 │ 153.406 μs │ 152.294 μs │  +0.7 % ➖ │        2 │        2 │  +0.0 % ➖ │
│                                            │ 100000 │   1.617 ms │   1.609 ms │  +0.5 % ➖ │        2 │        2 │  +0.0 % ➖ │
│ kuramoto → homogeneous → poly_buf → ka     │    100 │   3.471 μs │   3.512 μs │  -1.2 % ➖ │       22 │       22 │  +0.0 % ➖ │
│                                            │   1000 │  21.280 μs │  21.080 μs │  +0.9 % ➖ │       24 │       24 │  +0.0 % ➖ │
│                                            │  10000 │ 224.128 μs │ 224.789 μs │  -0.3 % ➖ │      106 │      106 │  +0.0 % ➖ │
│                                            │ 100000 │   2.242 ms │   2.252 ms │  -0.5 % ➖ │      106 │      106 │  +0.0 % ➖ │
│ kuramoto → homogeneous → poly_buf → poly   │    100 │   2.545 μs │   2.782 μs │  -8.5 % ✅ │        5 │        5 │  +0.0 % ➖ │
│                                            │   1000 │  13.495 μs │  14.427 μs │  -6.5 % ✅ │        5 │        5 │  +0.0 % ➖ │
│                                            │  10000 │ 125.043 μs │ 136.083 μs │  -8.1 % ✅ │        5 │        5 │  +0.0 % ➖ │
│                                            │ 100000 │   1.408 ms │   1.565 ms │ -10.0 % ✅ │        5 │        5 │  +0.0 % ➖ │
│ kuramoto → homogeneous → poly_buf → thrd   │    100 │   8.391 μs │   8.286 μs │  +1.3 % ➖ │       24 │       24 │  +0.0 % ➖ │
│                                            │   1000 │  24.506 μs │  24.856 μs │  -1.4 % ➖ │       24 │       24 │  +0.0 % ➖ │
│                                            │  10000 │ 198.451 μs │ 196.497 μs │  +1.0 % ➖ │       24 │       24 │  +0.0 % ➖ │
│                                            │ 100000 │   2.608 ms │   2.811 ms │  -7.2 % ✅ │       24 │       24 │  +0.0 % ➖ │
│ kuramoto → homogeneous → poly_buf → sprs   │    100 │   2.519 μs │   2.535 μs │  -0.6 % ➖ │        2 │        2 │  +0.0 % ➖ │
│                                            │   1000 │  18.585 μs │  18.404 μs │  +1.0 % ➖ │        2 │        2 │  +0.0 % ➖ │
│                                            │  10000 │ 177.280 μs │ 179.125 μs │  -1.0 % ➖ │        2 │        2 │  +0.0 % ➖ │
│                                            │ 100000 │   1.975 ms │   1.983 ms │  -0.4 % ➖ │        2 │        2 │  +0.0 % ➖ │
│ kuramoto → homogeneous → thrd_buf → seq    │    100 │   7.494 μs │   6.693 μs │ +12.0 % ❌ │       44 │       44 │  +0.0 % ➖ │
│                                            │   1000 │  21.441 μs │  22.482 μs │  -4.6 % ➖ │       44 │       44 │  +0.0 % ➖ │
│                                            │  10000 │ 156.061 μs │ 160.409 μs │  -2.7 % ➖ │       44 │       44 │  +0.0 % ➖ │
│                                            │ 100000 │   1.196 ms │   1.191 ms │  +0.4 % ➖ │       44 │       44 │  +0.0 % ➖ │
│ kuramoto → heterogeneous → assemble        │    100 │ 224.009 μs │ 168.765 μs │ +32.7 % ❌ │      974 │      700 │ +39.1 % ❌ │
│                                            │   1000 │   1.356 ms │   1.031 ms │ +31.5 % ❌ │     6422 │     4339 │ +48.0 % ❌ │
│                                            │  10000 │  14.213 ms │  10.432 ms │ +36.2 % ❌ │    60456 │    40361 │ +49.8 % ❌ │
│                                            │ 100000 │ 137.401 ms │ 106.108 ms │ +29.5 % ❌ │   600484 │   400381 │ +50.0 % ❌ │
│ kuramoto → heterogeneous → seq → seq       │    100 │   1.127 μs │   1.154 μs │  -2.3 % ➖ │          │          │  +0.0 % ➖ │
│                                            │   1000 │  11.396 μs │  11.421 μs │  -0.2 % ➖ │          │          │  +0.0 % ➖ │
│                                            │  10000 │ 122.890 μs │ 125.265 μs │  -1.9 % ➖ │          │          │  +0.0 % ➖ │
│                                            │ 100000 │   1.706 ms │   1.648 ms │  +3.5 % ➖ │          │          │  +0.0 % ➖ │
│ kuramoto → heterogeneous → ka → seq        │    100 │   3.029 μs │   2.947 μs │  +2.8 % ➖ │       44 │       44 │  +0.0 % ➖ │
│                                            │   1000 │  13.736 μs │  14.002 μs │  -1.9 % ➖ │       45 │       45 │  +0.0 % ➖ │
│                                            │  10000 │ 160.871 μs │ 161.843 μs │  -0.6 % ➖ │      230 │      230 │  +0.0 % ➖ │
│                                            │ 100000 │   1.089 ms │   1.076 ms │  +1.2 % ➖ │      846 │      846 │  +0.0 % ➖ │
│ kuramoto → heterogeneous → poly → seq      │    100 │   2.030 μs │   2.089 μs │  -2.8 % ➖ │        3 │        3 │  +0.0 % ➖ │
│                                            │   1000 │  12.293 μs │  12.213 μs │  +0.7 % ➖ │        3 │        3 │  +0.0 % ➖ │
│                                            │  10000 │ 110.415 μs │ 111.459 μs │  -0.9 % ➖ │        3 │        3 │  +0.0 % ➖ │
│                                            │ 100000 │   1.181 ms │   1.150 ms │  +2.7 % ➖ │        3 │        3 │  +0.0 % ➖ │
│ kuramoto → heterogeneous → thrd → seq      │    100 │   9.087 μs │   9.398 μs │  -3.3 % ➖ │       66 │       66 │  +0.0 % ➖ │
│                                            │   1000 │  20.638 μs │  21.009 μs │  -1.8 % ➖ │       66 │       66 │  +0.0 % ➖ │
│                                            │  10000 │ 125.976 μs │ 124.052 μs │  +1.6 % ➖ │       66 │       66 │  +0.0 % ➖ │
│                                            │ 100000 │ 998.985 μs │ 983.752 μs │  +1.5 % ➖ │       66 │       66 │  +0.0 % ➖ │
│ kuramoto → heterogeneous → seq_buf → seq   │    100 │   1.173 μs │   1.165 μs │  +0.7 % ➖ │          │          │  +0.0 % ➖ │
│                                            │   1000 │  12.483 μs │  11.582 μs │  +7.8 % ❌ │          │          │  +0.0 % ➖ │
│                                            │  10000 │ 120.004 μs │ 123.511 μs │  -2.8 % ➖ │          │          │  +0.0 % ➖ │
│                                            │ 100000 │   1.348 ms │   1.326 ms │  +1.6 % ➖ │          │          │  +0.0 % ➖ │
│ kuramoto → heterogeneous → ka_buf → seq    │    100 │   2.984 μs │   2.953 μs │  +1.1 % ➖ │       42 │       42 │  +0.0 % ➖ │
│                                            │   1000 │  13.931 μs │  13.746 μs │  +1.3 % ➖ │       43 │       43 │  +0.0 % ➖ │
│                                            │  10000 │ 168.004 μs │ 159.108 μs │  +5.6 % ❌ │      219 │      219 │  +0.0 % ➖ │
│                                            │ 100000 │   1.093 ms │   1.105 ms │  -1.1 % ➖ │      747 │      747 │  +0.0 % ➖ │
│ kuramoto → heterogeneous → poly_buf → seq  │    100 │   2.281 μs │   2.310 μs │  -1.3 % ➖ │        3 │        3 │  +0.0 % ➖ │
│                                            │   1000 │  13.200 μs │  13.290 μs │  -0.7 % ➖ │        3 │        3 │  +0.0 % ➖ │
│                                            │  10000 │ 121.486 μs │ 120.135 μs │  +1.1 % ➖ │        3 │        3 │  +0.0 % ➖ │
│                                            │ 100000 │   1.285 ms │   1.262 ms │  +1.8 % ➖ │        3 │        3 │  +0.0 % ➖ │
│ kuramoto → heterogeneous → poly_buf → ka   │    100 │   3.538 μs │   3.524 μs │  +0.4 % ➖ │       23 │       23 │  +0.0 % ➖ │
│                                            │   1000 │  18.294 μs │  17.984 μs │  +1.7 % ➖ │       25 │       25 │  +0.0 % ➖ │
│                                            │  10000 │ 195.074 μs │ 190.787 μs │  +2.2 % ➖ │      107 │      107 │  +0.0 % ➖ │
│                                            │ 100000 │   1.901 ms │   1.864 ms │  +2.0 % ➖ │      107 │      107 │  +0.0 % ➖ │
│ kuramoto → heterogeneous → poly_buf → poly │    100 │   2.545 μs │   2.756 μs │  -7.7 % ✅ │        6 │        6 │  +0.0 % ➖ │
│                                            │   1000 │  11.482 μs │  12.127 μs │  -5.3 % ✅ │        6 │        6 │  +0.0 % ➖ │
│                                            │  10000 │  99.747 μs │ 102.742 μs │  -2.9 % ➖ │        6 │        6 │  +0.0 % ➖ │
│                                            │ 100000 │   1.100 ms │   1.132 ms │  -2.8 % ➖ │        6 │        6 │  +0.0 % ➖ │
│ kuramoto → heterogeneous → poly_buf → thrd │    100 │   8.256 μs │   8.200 μs │  +0.7 % ➖ │       25 │       25 │  +0.0 % ➖ │
│                                            │   1000 │  21.520 μs │  21.300 μs │  +1.0 % ➖ │       25 │       25 │  +0.0 % ➖ │
│                                            │  10000 │ 167.483 μs │ 166.672 μs │  +0.5 % ➖ │       25 │       25 │  +0.0 % ➖ │
│                                            │ 100000 │   2.554 ms │   2.317 ms │ +10.2 % ❌ │       25 │       25 │  +0.0 % ➖ │
│ kuramoto → heterogeneous → poly_buf → sprs │    100 │   2.454 μs │   2.520 μs │  -2.6 % ➖ │        3 │        3 │  +0.0 % ➖ │
│                                            │   1000 │  14.678 μs │  14.808 μs │  -0.9 % ➖ │        3 │        3 │  +0.0 % ➖ │
│                                            │  10000 │ 139.701 μs │ 142.166 μs │  -1.7 % ➖ │        3 │        3 │  +0.0 % ➖ │
│                                            │ 100000 │   1.558 ms │   1.565 ms │  -0.4 % ➖ │        3 │        3 │  +0.0 % ➖ │
│ kuramoto → heterogeneous → thrd_buf → seq  │    100 │   9.437 μs │   9.588 μs │  -1.6 % ➖ │       66 │       66 │  +0.0 % ➖ │
│                                            │   1000 │  21.450 μs │  24.005 μs │ -10.6 % ✅ │       66 │       66 │  +0.0 % ➖ │
│                                            │  10000 │ 136.124 μs │ 136.075 μs │  +0.0 % ➖ │       66 │       66 │  +0.0 % ➖ │
│                                            │ 100000 │   1.024 ms │   1.020 ms │  +0.4 % ➖ │       66 │       66 │  +0.0 % ➖ │
└────────────────────────────────────────────┴────────┴────────────┴────────────┴────────────┴──────────┴──────────┴────────────┘

https://github.com/JuliaDynamics/NetworkDynamics.jl/actions/runs/11481996660/artifacts/2094127973

@hexaeder hexaeder merged commit ae9fb7a into main Oct 23, 2024
7 checks passed
@hexaeder hexaeder deleted the hw/metadata branch October 23, 2024 15:09
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.

Check for identical references in vertex/edge list allow symbolic indexing based on component name
1 participant