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.