Project Meeting 2023.08.22 - ActivitySim/activitysim GitHub Wiki

Agenda

Action Items / Key Decisions

Meeting Notes

Numeric Data Type Update

  • Overview of Approach
    • There are different types of options for numeric values: integer type (8, 16, 32, or 64) with signed (range of -128 to 127) or unsigned (range of 0 to 255).
    • For most variables, we'd be safe to use unsigned int8. However, when we do numeric operations on unsigned int8, a negative could be produced, which could default to 255. For these reasons, it was recommended to move forward without using unsigned integers.
    • For signed integers, there is numeric overflow with lower byte integer specifications. For example, there are operations that calculate a chaperone weight. Each individual variable is int8; when the weight is calculated, there’s an overflow with the calculations. The process currently does not smartly upflow the number of integer bytes that are needed. A potential solution would be to resolve these cases by manually upcast the variables as int64.
  • Implications
    • Developers would need to manually upcast in the code and users need to keep this in mind when creating formulas in UECs and preprocessors.
    • There will be savings in memory but have cost in that needs to be very intentional in code/UECs.
    • Concern that it wouldn’t be obvious on the user end if this process is going to mess up calculations.
    • Some risk on the developer side; but larger risk on the user side, it’s complicated and not clear when someone messes it up.
  • Next Steps
    • Sijia to put together a memory profile to see memory savings with the downcasting, to see if it’s worth the effort
    • Need to make a decision on whether to downcast numerics, but need a little more analysis from Sijia to make that decision
    • There is an issue under the sharrow implementation (skim values are not being returned correctly on time period categoricals). Sijia and Jeff to work through implementing a solution.

Admin

  • The response to Eric Miller editorial has been finalized
    • If interested as a signatory, one representative person from each agency is requested
  • Focus of partners only meeting will be to focus on how to do Phase 9 procurement
  • ActivitySim Google Drive
    • Joe has created and is moving things around
    • Please ignore any notifications about resharing, annoying emails, etc.