-
Notifications
You must be signed in to change notification settings - Fork 121
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
vine: fixed_location task groups #3787
base: master
Are you sure you want to change the base?
vine: fixed_location task groups #3787
Conversation
This currently works (from some testing i have done). It does some pretty expensive searches and is a bit invasive to the code. I wanted to open it up at this stage in case anyone has thoughts on the idea and implementation. |
f4de28d
to
a09c990
Compare
5ab8af6
to
35d3e30
Compare
Colin, this has been sitting here for a while but based on our recent discussions I am getting more comfortable with the approach. Do you think this is ready to merge? Does it need more testing? Rebasing? |
65051f5
to
aed1957
Compare
Accidentally closed? |
Yes I’m not sure why but I’ll fix it up so it doesn’t have all the outside commits. Regarding merging in it should not create any issues with the feature turned off by default. While using the task groups there are still a few holes in the policy for error handling. |
Per our discussion today, waiting until this works smoothly with the Montage+Parsl example, then will be more confident in merging... |
0e17e92
to
2119c31
Compare
2119c31
to
e62d595
Compare
taskvine/src/worker/vine_sandbox.c
Outdated
@@ -54,6 +54,10 @@ vine_cache_status_t vine_sandbox_ensure(struct vine_process *p, struct vine_cach | |||
break; | |||
case VINE_CACHE_STATUS_UNKNOWN: | |||
case VINE_CACHE_STATUS_FAILED: | |||
if (p->task->group_id) { |
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.
Re our discussion today, move this failure-handling logic to task_can_run_eventually
.
If a task has an input file that is UNKNOWN
, check it see if another known tasks produces it as an output file.
If so, then the task can stay until it becomes runnable.
@colinthomas-z80 Please see conflicts above... |
f79dab9
to
78cba11
Compare
78cba11
to
2fc3180
Compare
@colinthomas-z80 this is looking pretty close, except for the task_can_run_eventually bit. What do you think -- is there something else missing here before we are ready to merge? |
Yes that part could be a bit more elegant. Before merging I want to clean up the worker debug logging and I am testing a change that fixes an issue with recovery tasks. |
ok, thanks for the update |
4c03f1b
to
587eb35
Compare
Proposed changes
With task groups enabled, detect groups of sequential, temp-file dependent tasks, and send them in batches to a single worker, avoiding the overhead and complexity of maintaining fixed_location policy.
Post-change actions
Put an 'x' in the boxes that describe post-change actions that you have done.
The more 'x' ticked, the faster your changes are accepted by maintainers.
make test
Run local tests prior to pushing.make format
Format source code to comply with lint policies. Note that some lint errors can only be resolved manually (e.g., Python)make lint
Run lint on source code prior to pushing.Additional comments
This section is dedicated to changes that are ambitious or complex and require substantial discussions. Feel free to start the ball rolling.