Project Meeting 2022.03.15 - ActivitySim/activitysim GitHub Wiki

Agenda

  • Continued sharrow presentation and discussion

Action Items

  • none

Notes

Discuss linear-in-parameters function

  • Currently, sharrow can’t do tracing of household information easily because it's not writing out the array of utilities because they aren’t readily available.
  • If we have to reach into numba and have it write it out, then it will slow it out.
  • If you want to trace, it is recommended that you use the existing code (which will use more memory in order to be able to store and write the values, but provide the functionality that you want).
  • In the future, tracing with sharrow may be possible with other optimizations, but not available yet.

Three modes to run ActivitySim

  • Legacy – as is today, without sharrow but allows the tracing for debugging.
    • You may want to use this if you are in development mode, if you are changing the UECs a lot, because the compiling step of sharrow takes a long time, and you wouldn’t want to do that every time, if you are changing the model a lot
  • Sharrow – runs faster but can’t do the tracing
    • To enable sharrow, just need to include "Sharrow: True"in settings.yaml
  • Testing – runs both legacy and sharrow mode for testing to ensure that results come out identical

With sharrow, you can run it three ways

  1. Runs it through the model with a very small number of households to pre-compile the spec files and (optionally) test against legacy code,
  2. With a larger sample households to do chunk training,
  3. With full-scale households in production.