Project Meeting 2020.09.28 - ActivitySim/activitysim GitHub Wiki

Technical call

  • Adaptive chunking
    • Jeff working on calculating an adaptive chunk size for each submodel so activitysim can be smarter about allocating CPU and RAM resources
    • This is needed for TVPB because it's deep in some submodels and is more variable w.r.t. to memory and CPU needs than the more straightforward submodels
    • Almost done and should make all activitysim models run faster
    • Also the user won't need to figure out the chunk size, which the SEMCOG project got stuck on for a bit
    • Also reduces developer burden to try and figure out what the chunksize should be; instead asim trys a small sample and sees what it is and then runs the whole sample with the new setting
    • This is work toward more performant three zone / TVPB functionality
    • Java is running in a VM so it has more control over memory than Python. Numpy for example tries to be fast and do whatever it wants with memory (i.e. it isn't very transparent)
    • Python is great, but memory management is a weakness
  • Three zone / TVPB example
    • I prepared the Marin TM2 work tour mode choice setup for Jeff for development, but I cropped out SF county for more rapid development for now, but I need to instead crop out Marin since it has a more realistic maz to taz ratio
    • In the Marin model, in SF county, each MAZ is a TAZ. In Marin county, there are 1400 mazs and 200 tazs. I'll re-run my script for Marin.
    • Jeff is going to implement the Marin TM2 work mode choice example so it reads households, persons, zones, and tours from CSV files and sets up the tour ids as needed for random number management. It will be an easy-to-use and repeatable example. We'll have an activitysim style annotator as well.
    • Once Jeff gets it working, I'll run the full Marin TM2 example and finalize in cooperation with Jeff as needed
    • Eventually we'll have a new example, something like example_marin_tm2_work_tour_mode_choice that starts from the CSV files and is included in the example distribution system.
  • Joint tour participation chunking bug #288
    • Clint will soon be stuck on this bug for ARC
    • It didn't happen for MTC so there must be some sort of sorting of input data in MTC that we got lucky with
    • Jeff will fix since he's working on the chunking stuff right now
  • Examples
    • We're currently distributing examples via example_manifest.yaml
    • Clint planning to add ARC examples in the ARC fork as a way to better organize example/data distribution
    • We don't really want to add many examples (a.k.a. model designs, pipelines, or spines) to what we have to take care of
    • So we're thinking we try to stick to a few core designs, say tm1, tm2, etc. and try to extend them when needed for new features, such as ARC parking location choice for the tm1 spine
    • Longer term, maybe we need a nightly build system for running lots of these big/complex examples
  • ARC parking location choice model
    • Clint likely re-using the existing location choice code
    • Instead of school size (such as enrollment), use CBD zone indicator
    • And then sample from the available alternatives
    • ARC basically has no unique Python code and we've accepted all PRs so they're able to stay on the official ActivitySim version
    • Clint to update build trip matrices submodel to be parking location choice aware
    • Will get it working and then worry about how to contribute a testable example
    • Clint to work on this and talk with Doyle as needed
  • Project admin
    • We'll take some notes from these calls (....are these notes kinda long?)
    • We're making lots of decisions as we go + it's helpful for folks not in attendance