-
Notifications
You must be signed in to change notification settings - Fork 21
Upgrade ABM3 to use ActivitySim v1.3.4 #279
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: ABM3_develop
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi Joe, looks pretty good, just a couple of minor suggested edits.
@@ -285,10 +285,6 @@ annotate_trips: | |||
|
|||
# to reduce memory needs filter chooser table to these fields | |||
TOURS_MERGED_CHOOSER_COLUMNS: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we should be able to delete this whole setting -- we added functionality in phase 9B to remove unnecessary columns automatically.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Was that functionality incorporated into release 1.3.2?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It was added as part of this PR into ActivitySim: ActivitySim/activitysim#833
@@ -286,10 +286,6 @@ annotate_trips: | |||
|
|||
# to reduce memory needs filter chooser table to these fields | |||
TOURS_MERGED_CHOOSER_COLUMNS: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same here, shouldn't need this anymore.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Suggest adding a comment to this file pointing to the open ActivitySim issue on needing this yaml.
src/asim/extensions/av_ownership.py
Outdated
|
||
# iterative what-if analysis example | ||
# omit these settings to not iterate | ||
AV_OWNERSHIP_ITERATIONS: int | None = 1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we should set the defaults to None, aka no iterations.
%PROJECT_DRIVE% | ||
cd /d %PROJECT_DIRECTORY% | ||
cd output\skims | ||
CALL wring omx |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Suggest adding some inline documentation here as to what this wring call does so future folks have more context.
@JoeJimFlood Do you have the ActivitySim timing log file output between the BayDAG and the new v1.3 code? I am curious where the differences in runtime are showing up. |
@dhensle I've attached a comparison of the timing logs, but the run using asim 1.3.2 was shorter despite the overall time for the resident model being longer. I wonder if there's some additional overhead not included in the timing log? |
…here and pointing to the issue that was brought up regarding its use.
Yeah the timing log is encouraging. baydag version takes 4.1 hours compared to 3.3 hours for v1.3. There is some additional overhead that doesn't make it into the ActivitySim timing log file, but the overall log file should have an accurate total run time. Can you please take a look at the run time in activitysim.log file for both of these? If the results are pretty consistent to the runtimes in the timing log, the runtime increase must be in another non-resident model step. Otherwise, we should probably create an ActivitySim issue for further investigation. Interesting that mandatory tour scheduling decreased by a significant amount but non-mandatory scheduling increased. Not sure why that would be... |
It looks like 4:28 for the BayDAG code and 4:49 for v1.3.2, so that's more consistent with our full runtime summary. |
I just realized that I need to update src\asim\scrips\environment.yml so I'm going to do that. |
I updated it but there are some issues that need to be resolved before we can confirm it works. |
…hat was slowing it down
…configs as their absence was causing a crash
I added |
…those is needed for it
…ging of pipeline format
…directory stored in the injectables as opposed to where it is relative to the output directory
Proposed changes
This pull request upgrades the resident, crossborder, visitor, and airport access models to work with ActivitySim version 1.3.2. This version includes the BayDAG enhancements along with more a more memory-efficient skim format. It will also put us in an easier position to incorporate Sharrow in the near future.
Summary of changes:
max_blend_distance
in network LOS settingsCHOICE_COL_NAME
in tour mode choice settingsTOURS_MERGED_CHOOSER_COLUMNS
in the trip mode choice settings for the airport access modelscompute_settings
to tour_od choice settings in crossborder model to prevent origin_destination column from being removed from the tours table in internal memoryCOLS_TO_INCLUDE_IN_ALTERNATIVES_TABLE
toCOLS_TO_INCLUDE_IN_ALTS_TABLE
in vehicle type choice settingsImpact
There should be minimal impact on the model results, though during the full run there were some increases in runtime observed. Two base year runs were conducted, one using the BayDAG version of ActivitySim (Scenario 239) and the other using version 1.3.2 (Scenario 249). When switching to ActivitySim 1.3.2 there was a 139,296 increase in loaded network VMT, or a 0.18% increase. The differences in most key metrics were negligible for the two runs, which are shown under further comments.
The test did show an increase in runtime, with the base run taking 43 hours and the run with ActivitySim 1.3.2 taking 47 hours in total. The chart below shows how the difference was in global iteration 3 between the two runs. All of the ActivitySim models took longer with v1.3.2, but some of this was due to the skim memory manager present in the BayDAG version of the code not being in v1.3.2. Iteration 3 took a total of 11 hours and 24 minutes with the BayDAG code and 12 hours and 34 minutes with ActivitySim v1.3.2.

Types of changes
What types of changes does your code introduce to ABM?
Put an
x
in the boxes that applyHow has this been tested?
Please describe the tests that you ran to verify your changes.
Checklist:
Further comments
VMT by mode

VMT by functional class

Resident model mode share

Transit boardings by mode
