Repository navigation
2026-07-30 Engineering Team #125
Copy link
Copy link
Closed
Labels
meetingMeeting notes.Meeting notes.
Description
Activity
ActivitySim Engineering Meeting Notes
Meeting Overview
Agenda
- Review the Phase 11 list of open issues, tasks, and pull requests.
- Discuss selected technical and review questions in the explicit error terms (EET) pull request.
- Identify follow-up work and topics requiring product-level direction.
Participants
- Joe Castiglione (@joecastiglione) — Zephyr Foundation
- Jeff Newman (@jpn--) — Driftless
- David Hensle (@dhensle) — RSG
- Sijia Wang (@i-am-sijia) — WSP
- Jan Zill (@janzill) — Outer Loop
- Andrew Kay (@andkay) — CS
Duration
59 minutes
Executive Summary
The team reviewed active Phase 11 issues and pull requests, assigning follow-ups and identifying several focused tasks suitable for AI-assisted development. The group distinguished removable unused external-student code from the broader question of whether ActivitySim should support airport and other ancillary models, which Joe will take to the product and community team. The team resolved the remaining EET pull-request questions, including deterministic handling of empty population samples and excluding Poisson sampling from estimation mode for now. Following final approval, Jeff merged the EET pull request.
Meeting Notes
Phase 11 issue and pull-request review
- Jeff is developing support for reading skims in Parquet format and expected to open a pull request later that day. He planned to review an estimation-failure pull request next.
- The older draft pull request covering global constants and chooser-column filtering remains useful. David explained that it addresses two separate quality-of-life issues:
- Make global constants available to all model components.
- Remove obsolete interaction-simulation chooser-column settings now that unnecessary columns can be dropped automatically.
- The team agreed that these should become two focused pull requests. Jeff will use AI tools to help advance the work.
- Sijia noted a related but broader issue: helper functions in
utils.pyare not exposed to every model component. This arose while estimating non-mandatory tour destination choice for Sydney. The team recognized this as separate from the global-constants change and a possible additional AI-assisted task.
Skim reading performance and memory behavior
- While implementing Parquet skim support, Jeff investigated OMX/HDF5 read performance. Initial experiments using lower-level HDF5 access and modern parallel decompression produced an estimated fivefold speed improvement on his laptop.
- Jeff expects to open a pull request and seek testing on other systems, including Windows. Andrew noted that CS has encountered similar OMX performance limitations in model development.
- Full-model GitHub Actions tests had begun failing after long runs, apparently because of memory exhaustion. Jeff added improved memory monitoring and swap-file support to keep the tests running and plans to investigate the underlying sporadic memory-release issue further.
Other active Phase 11 work
- The VLC trip-scheduling explicit-chunking pull request has been inactive; Jeff will contact Matt Richards for a status update.
- The workplace logsum-location-overwrite regression test remains on David's plate but is not currently urgent. The appropriate CI test still needs some design work.
- The application analysis guide remains active.
- For deletion of temporary variables and summarization, Sijia will check with Andrea about whether the work will resume soon and will update the issue. If it is not moving forward, Jeff will seek another way to finish it.
- David will revisit the file-closing review comment on the skim-load change and determine the correct placement of the close operation.
- David will address outstanding review comments on park-and-ride lot choice, which remains relatively high on his priority list.
- For stable sorting in school escorting, David will discuss the estimation edge case and person-ID tiebreaker with Will and then update the pull request.
Unused SANDAG extension functions and model scope
- The team agreed that the unused external-student-location code can be removed. David explained that the model was contemplated but not developed because the survey contained too few external-school records; it could be recreated later from the analogous external-workplace model if needed.
- The airport-model code presents a different question because a working SANDAG airport model exists and other agencies may also use ActivitySim infrastructure for airport, visitor, commercial-vehicle, or related models.
- Jeff emphasized that unsupported code in an example model can confuse users and create maintenance expectations. Joe and David emphasized the value of preserving the possibility of a broader family of ActivitySim models.
- The group agreed that the airport-model question is a product decision rather than an engineering-only decision. Joe will place it on the next product and community team agenda.
EET: empty population samples
- With Poisson population sampling, a chooser can rarely receive an empty sample. Retrying with additional random draws would make random-number streams diverge between scenarios and could complicate the sampling correction factor.
- Jan implemented a deterministic fallback: when person-based sampling returns no alternatives, use the highest-utility alternatives up to the configured sample size. This avoids further random draws and guarantees a nonempty choice set.
- The fallback is most relevant when availability is restricted to a small set, such as a school-location model constrained by district or county.
- Unit and integration tests passed without changing results in the standard tested cases. The team agreed to retain Jan's implementation.
EET: trip-scheduling stability follow-up
- Jan found that the alternative identifier used in trip-scheduling choice is not fully stable across contexts. The current method still reduces scenario noise substantially, so the issue is not urgent, but further improvement and testing with ARC and Victoria DTP would be useful.
- Because this work is outside the current budget, Jan will open a separate issue with a more detailed proposed solution. Joe indicated that it could be considered for near-term Phase 12 funding.
- Jan also expects to open three or four related issues, including bias sampling and Monte Carlo sampling topics.
EET: estimation mode and merge decision
- The team agreed to leave Poisson sampling unavailable in estimation mode. A chooser with an unusually large sampled set could force Larch to allocate that maximum alternative count for every chooser because its estimation arrays are not ragged, creating unnecessary memory use.
- Estimation is a one-off workflow rather than a scenario-comparison workflow, so the added stability from Poisson sampling is not currently a priority there. Larch support could be improved later if a need emerges.
- The existing validation for invalid utilities/probabilities was confirmed to prevent a choice from being made from unusable values.
- David approved the pull request, and Jeff merged the EET work during the meeting.
Upcoming procurement
- Joe reported that the next open call/RFP was very close to release and was highly likely, though not guaranteed, to be issued the following week.
Action Items
- Jeff: Open the Parquet skim-reading pull request and continue investigating the estimation failure and sporadic memory-release issue.
- Jeff: Prepare the experimental faster OMX/HDF5 skim-reader work for broader testing.
- Jeff: Split and advance the global-constants and chooser-column-filtering improvements as separate focused pull requests, using AI assistance.
- Jeff: Contact Matt Richards about the status of the VLC trip-scheduling explicit-chunking pull request.
- Joe: Add ActivitySim support for airport and other ancillary models to the next product and community team agenda.
- Sijia: Check with Andrea on the temporary-variable deletion and summarization work, then update the issue with whether it will proceed.
- David: Revisit the skim-load file-closing comment and propose or implement the appropriate fix.
- David: Address remaining park-and-ride lot-choice review comments.
- David: Discuss stable sorting for school escorting with Will and update the pull request.
- Jan: Open a separate issue describing improvements to stable trip-scheduling alternative identifiers and the testing needed with ARC and Victoria DTP.
- Jan: Open the additional follow-up issues identified from the EET work, including bias sampling and Monte Carlo sampling topics.
Metadata
Metadata
Assignees
Labels
meetingMeeting notes.Meeting notes.
Agenda