Skip to content

faster omx reader - #5

Closed
jpn-- wants to merge 15 commits into
mainfrom
faster-omx-reader
Closed

jpn-- wants to merge 15 commits into
mainfrom
faster-omx-reader

Conversation

@jpn--

@jpn-- jpn-- commented Jul 29, 2026

Copy link
Copy Markdown
Collaborator
  • Initial plan
  • Add from_parquet_3d reader for multi-dimension skims in parquet format
  • Improve pyarrow compatibility in parquet reader
  • Update pandera version in run-tests.yml
  • Update numpy version constraint in run-tests.yml
  • loosen reqs in test
  • fix dep pin
  • nix all the stars
  • update coveralls because ugh
  • faster omx reader

Copilot AI and others added 15 commits July 26, 2026 17:22
The two activitysim-examples jobs have been failing with exit code 143
(runner terminated due to memory exhaustion). Mitigations:

- run each collected test in its own pytest process so memory is fully
  released between model runs
- restore/save the persistent sharrow flow cache (including numba
  on-disk cache files) across CI runs, so warm runs skip most numba
  compilation; saved even on failure to seed the cache
- set MALLOC_ARENA_MAX=2 to limit glibc arena memory retention and pin
  NUMBA_NUM_THREADS to the runner core count
- add a background memory monitor that samples system memory every 15s
  and reports a peak-usage summary at job end

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Iteration 2: per-test process isolation confirmed the two non-sharrow
MTC tests pass in under a minute each, but the sharrow-enabled test
exhausts runner memory on its own during cold-cache numba compilation
(~47 min in). The abrupt runner shutdown also skipped the if:always()
steps, so the flow cache was never saved and the memory report was lost.

Changes:
- add an 8GB swapfile to absorb the transient compilation memory peak
- stream memory samples into the live step log so the data survives an
  abrupt runner shutdown
- add a watchdog that stops pytest gracefully when memory (incl. swap)
  is nearly exhausted, so the cache-save step still runs; each attempt
  then saves whatever flows it compiled, and subsequent runs resume
  from that warm cache instead of starting over

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@jpn--

jpn-- commented Jul 30, 2026

Copy link
Copy Markdown
Collaborator Author

Merged to ActivitySim/main

@jpn-- jpn-- closed this Jul 30, 2026
@jpn--
jpn-- deleted the faster-omx-reader branch July 30, 2026 15:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants