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
Faster random numbers activitysim#1103: Existing evidence does not support merging. An EET test could tell a different story, but had not been done (yet). Who will and with what timeline?
Review security-related dependency updates, the CI testing strategy, performance and memory improvements, outstanding pull requests and reviewer assignments, agency acceptance of deliverables, and PopulationSim maintenance.
The team agreed to concentrate routine integration testing on Python 3.11 while retaining broader coverage through core unit tests and post-merge testing. The faster RNG pull request remains on hold pending reproducible performance benefits, and the destination-choice memory improvements need testing at scale on Windows. Review responsibilities were clarified for calibration, explicit telecommuting, sampling fixes, and other outstanding changes, with agency acceptance still needing coordination. The team also discussed security-related dependency updates and restoring PopulationSim’s documentation and publishing workflows.
Meeting Notes
Security-related dependency updates
Jan prepared updates for ActivitySim and PopulationSim in response to a reported certificate-authority compromise. The changes update dependencies that maintain their own certificate lists.
Jan recommended updating uv and recreating virtual environments. He did not think a dedicated ActivitySim patch release was necessary because installation from PyPI could resolve updated dependencies without a new ActivitySim release.
CI testing strategy
The team agreed to use Python 3.11, the oldest supported version, for the larger tests on routine pushes and pull requests. This helps catch accidental use of syntax or features unavailable in the minimum supported Python version.
Jan described the revised coverage:
Core unit tests cover three operating systems and Python 3.11–3.13.
Larger tests use Python 3.11 on routine pushes.
Merges to main trigger the broader test matrix.
The team accepted that a compatibility problem affecting newer Python versions might first appear after merging. Such failures would need prompt attention. Python 3.14 support is not ready yet.
Faster random number generation
The faster RNG pull request is not ready to merge. Jeff’s current SANDAG benchmark results do not demonstrate a meaningful benefit and show some slowdown.
Jeff identified two potentially useful additional tests: a full-scale SANDAG run and a benchmark with EET and Poisson sampling. David pointed to earlier spreadsheet results showing improvements with full EET, without Poisson sampling, and explained that Poisson sampling reduces RNG work enough that RNG may no longer be the bottleneck.
David agreed to post the earlier results, and Jeff agreed to run EET benchmarks and try to reproduce the improvement. The merge remains on hold until the team has convincing, reproducible evidence that the benefit justifies the added complexity.
Jan also noted that continued support for the existing NumPy random-state interface removes an immediate compatibility reason to replace it.
Destination-choice peak memory
Jan had reviewed Jeff’s memory-reduction pull request and left comments, but the team still wants a large-scale Windows benchmark. Linux results alone are insufficient given how many agency models run on Windows.
Jan agreed to compare the branch against current main on a Windows machine with 256 GB of RAM, using a full-scale MTC model if feasible. Jeff will address Jan’s review comments. The remaining work includes resolving the reported test issues and checking whether the memory benefit holds on Windows.
Application and analysis guide
The guide remains a draft while Joe Flood waits for consolidated reviewer feedback.
Joe Castiglione will resolve which comments need to be addressed and provide that direction, targeting the next day or two. Joe Flood can then address the feedback and finish the guide. Final approval is also holding up completion of the associated invoice review.
Calibration and explicit telecommuting
The calibration pull request is ready for Jan’s final engineering review after David incorporated Jeff’s latest changes. David noted that PSRC and MWCOG have already tested the work and provided comments that were incorporated.
The explicit telecommuting work was reported as complete from WSP’s side, with Sijia having addressed recent comments. Its engineering review was reassigned from Jan to Joe Flood.
Jeff asked for clear agency acceptance contacts for both deliverables before merging. Joe Castiglione will follow up with Sijia and the agencies that previously expressed interest in reviewing the work.
Calibration appears substantially further along in agency review. Acceptance criteria for explicit telecommuting remain less clear because the work supplies only part of the broader model functionality envisioned; confirming that it runs is different from assessing its behavioral reasonableness.
Failed sampling choices and alternative availability
Jeff will review Jan’s pull request to skip failed sampling choices after Jan incorporates the newly merged park-and-ride zero-lot-choice changes.
Jan explained that the sampling changes include more explicit checks for unavailable alternatives under EET. Because EET does not exponentiate utilities, the previous aggregate utility check could miss edge cases. The revised approach checks individual alternatives against the unavailable-utility value.
Jan clarified that the merged park-and-ride fix works; the follow-up is about consistent behavior across combinations such as Sharrow and EET. Additional unit-test coverage may be useful.
For future redesign work, Jeff proposed representing alternative availability with a separate binary flag instead of encoding it as an extreme utility value. This was a design suggestion, not an agreed implementation task.
Other ActivitySim pull requests
Expose LOS: Jeff reviewed and merged Bo’s pull request before the meeting.
Park-and-ride zero-lot choice: David’s fix had been merged.
Summarize-step memory reduction: Jeff will review the change to drop unused variables and run benchmarks.
Simulation-based shadow-pricing segmentation: Jeff and Bhargava were identified as reviewers. Jeff considers the code close to complete, subject to confirmation that the mathematical correction is satisfactory, and will contact Bhargava after the meeting.
PopulationSim maintenance
Jan requested review of his pull request to restore documentation publishing and modernize CI and release workflows. It includes security-related dependency updates, PyPI publishing changes, and documentation updates covering outdated installation guidance.
Jan reported that the published documentation still reflects version 0.5 while the software is at version 0.10. He would like the updates reviewed and merged ahead of an anticipated release around the end of Phase 11.
Jeff agreed to arrange an additional AI-assisted review using Astra. The team also discussed closing a superseded PopulationSim pull request whose commits had been incorporated elsewhere, but the transcript does not identify that pull request clearly enough to name it.
Upcoming planning discussions
Participants were reminded to respond to Joe Castiglione’s scheduling email for the “moonshot” discussion. Joe Castiglione also reiterated the need to coordinate workshop planning with Jeff.
Action Items
David Hensle: Post the earlier RNG benchmark spreadsheets to the pull request.
Jeff Newman: Run additional EET benchmarks, review David’s results, and try to reproduce the RNG performance improvement before reconsidering a merge.
Jeff Newman: Address Jan’s comments on the destination-choice memory pull request.
Jan Zill: Benchmark the destination-choice memory changes at scale on Windows against current main.
Joe Castiglione: Consolidate application and analysis guide feedback and clarify required changes, targeting the next day or two.
Joe Flood: Address the consolidated guide feedback and finish the draft once that direction is available.
Jan Zill: Complete the final engineering review of the calibration pull request.
Joe Flood: Review the explicit telecommuting pull request.
Joe Castiglione: Meet with Sijia about explicit telecommuting and confirm agency review and acceptance contacts for telecommuting and calibration.
Jan Zill: Incorporate the merged park-and-ride changes into the failed-sampling-choices pull request, make the related handling consistent, and notify Jeff when it is ready.
Jeff Newman: Review the updated failed-sampling-choices pull request.
Jeff Newman: Review and benchmark the summarize-step memory reduction.
Jeff Newman: Contact Bhargava immediately after the meeting to coordinate review of the simulation-based shadow-pricing segmentation fix.
Jeff Newman: Arrange an Astra review of the PopulationSim documentation and CI pull request.
Relevant participants: Respond to Joe Castiglione’s scheduling request for the moonshot discussion.
Joe Castiglione and Jeff Newman: Follow up on workshop planning.
Activity
jpn-- commentedon Oct 27, 2026
Meeting Overview
ActivitySim Engineering Team — October 22, 2026
Agenda
Review security-related dependency updates, the CI testing strategy, performance and memory improvements, outstanding pull requests and reviewer assignments, agency acceptance of deliverables, and PopulationSim maintenance.
Participants
Duration
Approximately 45 minutes.
Executive Summary
The team agreed to concentrate routine integration testing on Python 3.11 while retaining broader coverage through core unit tests and post-merge testing. The faster RNG pull request remains on hold pending reproducible performance benefits, and the destination-choice memory improvements need testing at scale on Windows. Review responsibilities were clarified for calibration, explicit telecommuting, sampling fixes, and other outstanding changes, with agency acceptance still needing coordination. The team also discussed security-related dependency updates and restoring PopulationSim’s documentation and publishing workflows.
Meeting Notes
Security-related dependency updates
Jan prepared updates for ActivitySim and PopulationSim in response to a reported certificate-authority compromise. The changes update dependencies that maintain their own certificate lists.
Jan recommended updating
uvand recreating virtual environments. He did not think a dedicated ActivitySim patch release was necessary because installation from PyPI could resolve updated dependencies without a new ActivitySim release.CI testing strategy
The team agreed to use Python 3.11, the oldest supported version, for the larger tests on routine pushes and pull requests. This helps catch accidental use of syntax or features unavailable in the minimum supported Python version.
Jan described the revised coverage:
maintrigger the broader test matrix.The team accepted that a compatibility problem affecting newer Python versions might first appear after merging. Such failures would need prompt attention. Python 3.14 support is not ready yet.
Faster random number generation
The faster RNG pull request is not ready to merge. Jeff’s current SANDAG benchmark results do not demonstrate a meaningful benefit and show some slowdown.
Jeff identified two potentially useful additional tests: a full-scale SANDAG run and a benchmark with EET and Poisson sampling. David pointed to earlier spreadsheet results showing improvements with full EET, without Poisson sampling, and explained that Poisson sampling reduces RNG work enough that RNG may no longer be the bottleneck.
David agreed to post the earlier results, and Jeff agreed to run EET benchmarks and try to reproduce the improvement. The merge remains on hold until the team has convincing, reproducible evidence that the benefit justifies the added complexity.
Jan also noted that continued support for the existing NumPy random-state interface removes an immediate compatibility reason to replace it.
Destination-choice peak memory
Jan had reviewed Jeff’s memory-reduction pull request and left comments, but the team still wants a large-scale Windows benchmark. Linux results alone are insufficient given how many agency models run on Windows.
Jan agreed to compare the branch against current
mainon a Windows machine with 256 GB of RAM, using a full-scale MTC model if feasible. Jeff will address Jan’s review comments. The remaining work includes resolving the reported test issues and checking whether the memory benefit holds on Windows.Application and analysis guide
The guide remains a draft while Joe Flood waits for consolidated reviewer feedback.
Joe Castiglione will resolve which comments need to be addressed and provide that direction, targeting the next day or two. Joe Flood can then address the feedback and finish the guide. Final approval is also holding up completion of the associated invoice review.
Calibration and explicit telecommuting
The calibration pull request is ready for Jan’s final engineering review after David incorporated Jeff’s latest changes. David noted that PSRC and MWCOG have already tested the work and provided comments that were incorporated.
The explicit telecommuting work was reported as complete from WSP’s side, with Sijia having addressed recent comments. Its engineering review was reassigned from Jan to Joe Flood.
Jeff asked for clear agency acceptance contacts for both deliverables before merging. Joe Castiglione will follow up with Sijia and the agencies that previously expressed interest in reviewing the work.
Calibration appears substantially further along in agency review. Acceptance criteria for explicit telecommuting remain less clear because the work supplies only part of the broader model functionality envisioned; confirming that it runs is different from assessing its behavioral reasonableness.
Failed sampling choices and alternative availability
Jeff will review Jan’s pull request to skip failed sampling choices after Jan incorporates the newly merged park-and-ride zero-lot-choice changes.
Jan explained that the sampling changes include more explicit checks for unavailable alternatives under EET. Because EET does not exponentiate utilities, the previous aggregate utility check could miss edge cases. The revised approach checks individual alternatives against the unavailable-utility value.
Jan clarified that the merged park-and-ride fix works; the follow-up is about consistent behavior across combinations such as Sharrow and EET. Additional unit-test coverage may be useful.
For future redesign work, Jeff proposed representing alternative availability with a separate binary flag instead of encoding it as an extreme utility value. This was a design suggestion, not an agreed implementation task.
Other ActivitySim pull requests
PopulationSim maintenance
Jan requested review of his pull request to restore documentation publishing and modernize CI and release workflows. It includes security-related dependency updates, PyPI publishing changes, and documentation updates covering outdated installation guidance.
Jan reported that the published documentation still reflects version 0.5 while the software is at version 0.10. He would like the updates reviewed and merged ahead of an anticipated release around the end of Phase 11.
Jeff agreed to arrange an additional AI-assisted review using Astra. The team also discussed closing a superseded PopulationSim pull request whose commits had been incorporated elsewhere, but the transcript does not identify that pull request clearly enough to name it.
Upcoming planning discussions
Participants were reminded to respond to Joe Castiglione’s scheduling email for the “moonshot” discussion. Joe Castiglione also reiterated the need to coordinate workshop planning with Jeff.
Action Items
main.