You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For peak-memory reduction #1110. Open review concerns. Do we want performance results for full-scale SANDAG with production parameters (number of processes, etc), also on windows?
The team reviewed changes proposed for the final Phase 11 ActivitySim and PopulationSim releases, but did not set a release date. A proposed summarize change reduced a Boston model's memory peak in that step by about 50 GB; failed location sampling, calibration, explicit telecommute, Python support, and PopulationSim release work still needed review. Larger skim-compression and shadow-pricing changes were left for Phase 12 discussion.
The faster random-number-generator pull request remained unsettled. Jan identified possible gains in workloads with many draws and a future counter-based option for consistent Poisson sampling in two-zone models that use pre-sampling. Jan and Joe C. wanted clearer benchmarks; David favored an EET test without Poisson sampling, while Amir questioned that workload's practical value. No merge threshold was agreed.
Meeting Notes
Phase 11 Release Planning
Jan proposed reviewing the open pull requests against the planned end-of-Phase-11 release for both ActivitySim and PopulationSim. The group did not set a release date. Joe C. reported that the agency planning discussion favored tying proposed work to specific agency needs and coordinating test data, documentation, and release planning. No immediate engineering task followed from that report.
Resuming Runs and summarize Memory
ActivitySim #999 reports that write_data_dictionary can fail when a multiprocessing run resumes. Omitting that step is a workaround. Sijia agreed to examine whether the failure has a quick fix.
#1125 Summarize memory reduction addresses #1124 by dropping unused columns before joining wide tables. Sijia said it lowered the Boston model's peak by roughly 50 GB from above 160 GB, although memory use remained above 100 GB. Jan offered to review it for Phase 11. Loading merged tables on demand or chunking might help further, but whole-population summaries require correct denominators.
Failed Location Sampling and Shadow Pricing
#1130 Failed-choice fix addresses #1129: with Sharrow, explicit error terms, Poisson sampling, and skip_failed_choices=True, some workplace-location records receive no sampled destination and cause a crash despite being reported as skipped. Turning off skip_failed_choices is a workaround. Jan requested review of the fix.
Jan said the existing choice to avoid shifting all very negative utilities was intended to expose possible model-specification problems. Amir said very negative workplace utilities can instead arise from shadow pricing when nearby destinations lack capacity. Jan acknowledged that distinction; the broader shadow-pricing behavior remained open for Phase 12 consideration.
Skim Compression and Independent Shadow Pricing
#1131 proposes compression across skim tables. Sijia said exact-value compression across tables might save memory without rounding values. Amir said Sydney had avoided lossy compaction because small road or transit changes could otherwise disappear from model responses. Joe C. supported examining memory benefits against model sensitivity in Phase 12; the group made no implementation decision. Jan asked Amir to add the Sydney concern to the issue.
#1132 requests independent controls for school and workplace shadow pricing. Stefan said the option could be useful. The team decided to leave it for Phase 12 because there is no immediate urgency and Phase 11 is coming to a close.
#1103 Faster random numbers: Single-run benchmarks left performance at model scale unclear. Jan noted that NumPy's legacy RandomState, used by ActivitySim, had been superseded by Generator but remained supported. Jan also said a future counter-based RNG could generate reproducible draws keyed to sparse zone IDs, enabling work on consistent Poisson sampling in two-zone models that use pre-sampling. David said EET without Poisson sampling was a likely speed-benefit case; Amir questioned its practical use given the runtime. David favored another EET test, but no merge threshold was agreed.
#1107 Calibration remained a draft but was still a Phase 11 goal. David planned final checks with Sijia and Jeff before requesting review; Jan agreed to review the code independently.
#1110 Peak-memory reduction still had review concerns. Jan proposed further production-scale and Windows testing before deciding whether it was ready for Phase 11.
#1126 Explicit telecommute needed an engineering review. Jan offered to review the code, and Sijia agreed to publish the estimation notebooks. A separate SANDAG ABM3 configuration pull request accompanied #1126. The team did not confirm an agency reviewer for the telecommute work.
#1127 Python support proposed CI coverage for Python 3.11–3.13 and deprecating 3.10. David offered to review it. Jan favored proceeding without waiting for Python 3.14, which still depended on Sharrow and Larch compatibility work; he said he would open the Larch change for review.
#226 Workflow modernization would restore automatic documentation publishing and update older release infrastructure. Jan said the published documentation was still at version 0.5 and planned to finish the draft change for review. Joe C. supported the work.
Activity
janzill commentedon Oct 15, 2026
ActivitySim Engineering Team Meeting Notes — October 15, 2026
Meeting Overview
Participants
Duration
66 minutes
Executive Summary
The team reviewed changes proposed for the final Phase 11 ActivitySim and PopulationSim releases, but did not set a release date. A proposed
summarizechange reduced a Boston model's memory peak in that step by about 50 GB; failed location sampling, calibration, explicit telecommute, Python support, and PopulationSim release work still needed review. Larger skim-compression and shadow-pricing changes were left for Phase 12 discussion.The faster random-number-generator pull request remained unsettled. Jan identified possible gains in workloads with many draws and a future counter-based option for consistent Poisson sampling in two-zone models that use pre-sampling. Jan and Joe C. wanted clearer benchmarks; David favored an EET test without Poisson sampling, while Amir questioned that workload's practical value. No merge threshold was agreed.
Meeting Notes
Phase 11 Release Planning
Resuming Runs and
summarizeMemorywrite_data_dictionarycan fail when a multiprocessing run resumes. Omitting that step is a workaround. Sijia agreed to examine whether the failure has a quick fix.Failed Location Sampling and Shadow Pricing
skip_failed_choices=True, some workplace-location records receive no sampled destination and cause a crash despite being reported as skipped. Turning offskip_failed_choicesis a workaround. Jan requested review of the fix.Skim Compression and Independent Shadow Pricing
ActivitySim Pull Requests
RandomState, used by ActivitySim, had been superseded byGeneratorbut remained supported. Jan also said a future counter-based RNG could generate reproducible draws keyed to sparse zone IDs, enabling work on consistent Poisson sampling in two-zone models that use pre-sampling. David said EET without Poisson sampling was a likely speed-benefit case; Amir questioned its practical use given the runtime. David favored another EET test, but no merge threshold was agreed.PopulationSim Release Work
Action Items
summarizememory change in #1125.