activitysim icon indicating copy to clipboard operation
activitysim copied to clipboard

Level-of-service Manager

Open joecastiglione opened this issue 2 years ago • 0 comments
trafficstars

Consolidating a number of LOS management features requests into this issue.

  • Level-of-service Manager (https://github.com/ActivitySim/activitysim/issues/743)
  • LOS Roster (https://github.com/ActivitySim/activitysim/issues/748)
  • Reading Multiple OMX Skim Files (https://github.com/ActivitySim/activitysim/issues/721)

Level-of-service Manager

The level-of-service-manager software will have its own set of APIs for reading skims from disk, storing skims in memory, and delivering values from the skims to an ActivitySim model run request. As standalone software, developers will be able to make targeted improvements to how skims are stored and delivered, setting the stage for continuous improvement. The design of the software will anticipate massive parallelization in which numerous level-of-service managers are instantiated, reading in skims from a common storage location, and delivering skim values to numerous computing instances — though we anticipate this functionality will not be leveraged until the release of ActivitySim 2.0.

May also include Skims Memory Compression. With the refactoring of the level-of-service manager, skim values will be intelligently compressed to save memory resources. For example, if a matrix of transit transfers includes only values of 0, 1, 2, or 3, we do not need a zone by zone matrix of short-integers to store these values. Rather, we just need a dictionary pointing requesting zone pairs to the correct outcome, with the possible values only stored once in memory. This approach should further reduce the memory footprint of skims in ActivitySim.

LOS Roster

Implement Daysim like LOS roster

Reading Multiple OMX Skim Files

This feature means adding support for the user to be able to specify multiple skim files instead of one big skim file. Since network models typically write several separate skim files, this could make integration easier. This is similar to the DaySim roster and matrix page in the UECs.

joecastiglione avatar Sep 17 '23 19:09 joecastiglione