Skip to content

Rerun epiworld-v1 at 3d-1b (UofUEpiBio/epiworld#341) - #32

Merged
gvegayon merged 1 commit into
v1-layersfrom
port-network-build-no-maps
Oct 30, 2026
Merged

gvegayon merged 1 commit into
v1-layersfrom
port-network-build-no-maps

Conversation

@gvegayon

Copy link
Copy Markdown
Member

Pins 1b10904d8fb11e4d775a9eca154305f0b6cd9e22 (UofUEpiBio/epiworld#341).

The stage covers two epiworld changes since 3d-1:

The runners are unchanged: the AdjList constructor they use kept its signature. Run in the same image as 3d-1 (9a51e13558f5), both C++ engines, replicates interleaved. make container-check and make container-smoke pass; all 1,280 runs ok.

Rows

Each cell is 0.x, then 1.0. Simulate and build in seconds, peak in MiB.

Scenario n Simulate Ratio Build Ratio Peak Ratio Attack rate
00 10,000 0.00538, 0.00547 1.02 0.00149, 0.00131 0.88 8, 8 0.98 0.385, 0.385
00 100,000 0.00925, 0.00985 1.06 0.0171, 0.0122 0.71 38, 33 0.85 0.060, 0.060
01 10,000 0.00248, 0.00249 1.00 0.00133, 0.00112 0.85 8, 8 0.98 0.119, 0.119
01 100,000 0.00937, 0.00934 1.00 0.0133, 0.011 0.82 43, 41 0.94 0.014, 0.014
02 10,000 0.00236, 0.00245 1.04 0.00129, 0.00111 0.86 9, 8 0.99 0.119, 0.119
02 100,000 0.009, 0.00921 1.02 0.0136, 0.0107 0.79 44, 41 0.94 0.014, 0.014
03 1,000,000 0.0326, 0.0306 0.94 0.172, 0.137 0.80 352, 276 0.78 0.006, 0.006
04 165,865 0.185, 0.175 0.95 0.0166, 0.015 0.90 90, 88 0.97 0.622, 0.622

Against 3d-1 (the 10% rule)

  • Build time and peak memory fell in every row. The build ratio went from 5.2–9.0 to 0.71–0.90, and the peak ratio from 1.06–2.56 to 0.78–0.99.
  • Attack rates are the same as 0.x's and as at 3d-1.
  • 1,000,000 agents is no longer noisy: the simulation ratio is 0.94, against 1.58 at 3d-1.
  • The simulation ratio grew by more than 10% in every scenario up to 165,865 agents: to 1.00–1.06 from 0.69–0.97, and to 0.95 from 0.81 on GeoPops. I profiled it before anything else. The time per step didn't change; page faults moved from the build into the run.
    • The cause: the 3d-1 build freed tens of MiB of map nodes that glibc kept, and the run's first allocations reused them.
    • The measurement: I built scenario_01's runner at 100,000 agents against three commits (40 interleaved replicates in this image). It simulates in 0.0069 s at 3d-1 (5811a28), 0.0070 s after 3d-2 (b699adb), and 0.0101 s now.
    • The fault counts: inside run() it takes 0 minor page faults before #341 and about 3,400 (13 MiB) after. At under a microsecond each, that accounts for the difference.
    • So: the 3d-1 ratios below 1 were the same artifact, and the engines now simulate at parity. Build plus simulation at 100,000 agents takes 0.020 s, against 0.104 s at 3d-1. Nothing to fix in epiworld.

The note is under "3d-1b" in docs/epiworld-v1.md.

🤖 Generated with Claude Code

Pins epiworld v1-layers 1b10904 (UofUEpiBio/epiworld#341, after #340 and
#345). Network build and peak memory are back below 0.x; the simulation
ratio's rise up to 165,865 agents is page faults moved from the build into
the run (profiled, see the stage note), not a cost per step.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@gvegayon
gvegayon merged commit 9c7e478 into v1-layers Oct 30, 2026
2 checks passed
@gvegayon
gvegayon deleted the port-network-build-no-maps branch October 30, 2026 22:07
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