Project Meeting 2023.03.16 - ActivitySim/activitysim GitHub Wiki

Agenda

2 zone memory profiling

Notes

  • Presentation: ActivitySim Memory Profiling Task – Progress Update 3-16-2023.pptx

  • Models: placeholder_sandag and placeholder_psrc (only two 2-zone examples currently available)

    • SANDAG model doesn’t include the new features presented last week
    • SEMCOG 2-zone model is a PR but hasn’t been merged yet. RSG to pull it in and mark as ready.
    • 1-zone profiling included mtc, mwcog, arc
  • SANDAG test: same peak memory despite tests with different sample sizes

    • Mandatory tour scheduling is not the memory peak
    • Accessibility calculation is same size regardless of sample size.
    • Memory peak because of all the MAZ OD pairs
  • PSRC test: not able to run successfully with single processor

    • Need to change hardware or add chunking for accessibilities if we want to continue testing with this PSRC example
    • Instead of using this example, could use SEMCOG’s 2-zone example, once it's pulled in
    • Could chose number of processors by step (use multiprocessing for accessibilities)
  • Potential future improvements (but haven’t tested these possibilities, just exploring ideas at this point)

    • Don’t do MAZ-MAZ costs because the skims are TAZ-based (what’s being done behind the scenes anyway)
      • Note size term is MAZ-MAZ
    • Adapt sampling process from disaggregate accessibilities RSG implemented in Phase 7, to avoid the full enumeration of MAZ-MAZ accessibilities.
      • Need to confirm where the accessibilities are being used and whether the disaggregate accessibilities would work for that particular model.
      • Depends on the costs that go into the accessibility utility function.
      • Needs to be carefully thought out, but tools and methods seem to be there if someone wanted to go this route for their model.
  • Regarding memory allocation, how would you characterize ActivitySim's garbage collection behavior? Do we have anything that survive multiple garbage collection cycles?

    • Could be why there’s a zig-zag of memory profile or related to memory leak issue. WSP will be ooking into this is in a future task.
  • Accessibility calcs and data types

    • Not many columns, mostly skims
    • Float 64 for skims
    • Accessibility terms are float 64 (10 different ones – auto/transit/non-motorized for peak/offpeak)
  • Next steps

    • Next Thursday to present more on 2-zone memory profiling
    • Decide whether to sub SEMCOG for PSRC or change settings to be able to run PSRC