-
Notifications
You must be signed in to change notification settings - Fork 4
feat: Save/export a running experiment #202
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
Draft
sdelliot
wants to merge
18
commits into
sandialabs:main
Choose a base branch
from
sdelliot:feat-save-experiment
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Save/export a running experiment
Description
This draft PR is the start of a conversation around enabling users to save off (or export) a FIREWHEEL experiment. This export can then be loaded back onto the same server or potentially a different server. This solves two primary issues:
There are a few open questions that should be discussed:
Saving VM Schedules
The PR as written, will save all VMs experiment schedule and then loads that schedule back. Generally, this sounds great. However, there are some nuances with FIREWHEEL which make this difficult. First, the entire schedule is collected, not just the portion of the schedule that has not yet run. That means that upon load, the entire schedule will proceed to run again. I have a few thoughts on how we can deal with this.
Option 1: We can prohibit saving the schedule entirely or load in an empty schedule. To me, that would make this feature noticeably less useful and functionally only a wrapper around minimega's
ns save.Option 2: We can "intelligently" save off the schedule. That is, we can save the experiment time, and remove all scheduled events prior to the "current time". In this case, because negative time is per-VM, no negative time events would be saved. Rather, only positive time events that "have not yet run" would be saved. I think that this intelligent saving could happen at the "save point" or firewheel could update the VM's schedule after each time step. The second option may preserve the ability to have negative time resources, but would add a lot of overhead to the system with the various DB updates.
Option 3: We can potentially update the VM resource handler to identify duplicate entries or entries that have happened before. To me, this seems very risky and could break existing expectations of the system.
Issues with minimega
This feature relies on the current
masterbranch of minimega, which has not been formed into a release yet (soon to be v3.0.0). Both the minimega binary and associated Python package will need to be updated prior to merging this PR. However, there are some lingering issues including the discussion at sandia-minimega/minimega#1545 over backing images starting with relative paths.Experiment time
Should we save the prior experiment time. More importantly, if we do, should we adjust the start time? That is, if we save an experiment with a start time of 0800.00 after 10 seconds (current clock is 0800.10) and we resume the same day at 0900.00. Should the experiment time reflect 0800.10 or 0900.10?
Unfinished Features
Type of Change
Please select the type of change your pull request introduces:
Checklist
Additional Notes
Please provide any additional information or context for your pull request here.