Project Meeting 2023.01.31 - ActivitySim/activitysim GitHub Wiki

Agenda

  • ActivitySim 1.5 release
  • Phase 8 task overview

Action Items

  • WSP to identify schedule dependencies for Phase 8 work - what they can start now versus what needs to wait pending CS updates

Meeting Notes

ActivitySim 1.2

  • Released on Monday 🎉
  • Pre-packaged complete installer is also now available, primarily for non-development users who do not need to have conda/python installed for any reason other than ActivitySim.
  • Note that the installer may prompt a lot of warnings from your system’s security software.

Phase 8

  • Planning and coordination

    • CS Tasks

      • Overall Project Management - same as Phase 7 work/role
      • Remove Orca
        • This is a significant task in terms of where this change will occur. It will effect just about all points in the model stream.
        • Plan is to completely rewrite the functionality. Instead of the current global state of all the tables, variables, settings that get loaded in in very opaque ways, the new process would load in all tables, variable names, configs in a manner that is more consistent with the usual way python runs. For example, pass table as an argument, which will have benefits such as being easier to debug.
        • No longer have a global state managed by Orca. All the info will be there but will be in a contained space. If we want to do something like the disaggregate accessibilities, where there’s an alternative space, they can exist in their own isolated separate state that’s available to python simultaneously. Mainline model can exist, with its tables, and then can have a separate space.
        • Sequencing: need to do this task before Sijia dives into data typing and probably memory profiling. CS to do Orca work first and quickly – completed within 1 to 3 months. Need to be careful with other pull requests and merge issues. Data type change and pipeline update changes are contingent on Orca updates.
      • Configurable Data Pipeline File Format
        • Will only touch io format of the files that get written to disks as check points. Won’t affect what’s stored to memory, just file sizes.
      • Pydantic for Configuration
        • Small benefits to make sure the yaml files are valid
        • Larger benefits for automated documentation for what the yaml files need
      • Component Documentation
        • Not focused on creating new content, more about creating a documentation structure and framework and pulling what we already have. We will also assess where there are gaps.
      • User's Guide
      • Roadmap Support
    • RSG Tasks

      • Data Input Checker
        • Will build on revious implementations of an input checking tool developed for Southern Oregon and SANDAG
        • Tool will have python expressions and run those on input data to check on the validity of the data that you are passing to ActivitySim
        • Tool can produce fatal errors or warnings. RSG to work through what would qualify as a fatal error, for example, and will require input from the consortium.
        • Will every implementation need to develop their own version of this? There will be some general checks (for example, are each household and person ID unique) and then other implementation-specific checks can be developed.
        • Should we make recommendations to standardize input file specs in order to make it more compatible with the data input checker (such as skim names)? To not have to enforce this type of guidance, RSG can try to automate as much as possible (such as reading in skims to populate matrix names).
      • Roadmap Support
    • WSP Tasks

      • Roadmap Development
        • Will start by talking to consortium members/agencies using ActivitySim about: what features do you want; what is the timing of the needs; What are current pain points, constraints, and key performance indicators needs
        • Will talk to ActivitySim developers/engineers to determine resources to develop/address needs and other concerns
        • Will Synthesize feedback from users and developers to create a vision
        • Will create a living document and propose how to regularly update
        • WSP to develop milestones for this task and moving forward
        • WSP has vision for project and product management – will the roadmap go beyond features/performance? will it include broader sense of how we’re going to do? First step in roadmap (first milestone) is to set expectations of what the roadmap will include, and it address things beyond technical aspects, such as management, communication, responsibilities of consortium, etc.
      • 2-zone Memory Profiling
        • Extension of 1-zone analysis from Phase 7 to confirm the same findings and confirm data type optimization is also applicable to 2-zone systems
        • Can start now, not dependent on orca, should be a quick task
        • Still testing with only single processing. Resources for this task are limited and they are not planning to expand tests at this point.
      • Optimize data types
        • Based on one-zone testing recommendations from Phase 7
        • Some data types would be generic and some may be implementation-specific. WSP will start with the ones that will be fixed with the core code and not specific implementations. For individual implementations, see how much resources are left but likely won’t change everything for every implementation. Lessons learned from this work can be passed on to users when they want to implement for themselves.
        • Need to wait to start this task after Orca is removed.
      • Memory leak investigation
        • Contingent on removal of orca, will be WSP's last task and T&M-based. They will try to do as much as they can.