Skip to content
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

afterany dependency support #120

Open
pipitone opened this issue Aug 5, 2016 · 3 comments
Open

afterany dependency support #120

pipitone opened this issue Aug 5, 2016 · 3 comments
Milestone

Comments

@pipitone
Copy link
Collaborator

pipitone commented Aug 5, 2016

Currently --depend sets up dependencies so that all jobs must succeed before the submitted job runs (in PBS this is the afterok dependency), but sometimes you may want your final job to run regardless of success or failure (afterany).

If there's interest in supporting this kind of dependency, what about adding --afterok (which is aliased as --depend), and --afterany options.

@gdevenyi
Copy link
Member

gdevenyi commented Aug 5, 2016

Does SGE have an equivalent?

Andrew asked about this in his initial review

@pipitone
Copy link
Collaborator Author

pipitone commented Aug 5, 2016

A quick glance at the grid engine man pages doesn't show anything like afterany dependencies, but we could easily fake it by forcing a 0 return value from the job script.

@gdevenyi
Copy link
Member

SLURM offers a number of options:

       -d, --dependency=<dependency_list>
              Defer  the  start   of   this   job   until   the   specified   dependencies   have   been   satisfied   completed.    <dependency_list>   is   of   the   form   <type:job_id[:job_id][,type:job_id[:job_id]]>   or
              <type:job_id[:job_id][?type:job_id[:job_id]]>.  All dependencies must be satisfied if the "," separator is used.  Any dependency may be satisfied if the "?" separator is used.  Many jobs can share the same depen‐
              dency and these jobs may even belong to different  users. The  value may be changed after job submission using the scontrol command.  Once a job dependency fails due to the termination state of a  preceding  job,
              the dependent job will never be run, even if the preceding job is requeued and has a different termination state in a subsequent execution.

              after:job_id[:jobid...]
                     This job can begin execution after the specified jobs have begun execution.

              afterany:job_id[:jobid...]
                     This job can begin execution after the specified jobs have terminated.

              afterburstbuffer:job_id[:jobid...]
                     This job can begin execution after the specified jobs have terminated and any associated burst buffer stage out operations have completed.

              aftercorr:job_id[:jobid...]
                     A task of this job array can begin execution after the corresponding task ID in the specified job has completed successfully (ran to completion with an exit code of zero).

              afternotok:job_id[:jobid...]
                     This job can begin execution after the specified jobs have terminated in some failed state (non-zero exit code, node failure, timed out, etc).

              afterok:job_id[:jobid...]
                     This job can begin execution after the specified jobs have successfully executed (ran to completion with an exit code of zero).

              expand:job_id
                     Resources  allocated to this job should be used to expand the specified job.  The job to expand must share the same QOS (Quality of Service) and partition.  Gang scheduling of resources in the partition is
                     also not supported.

              singleton
                     This job can begin execution after any previously launched jobs sharing the same job name and user have terminated.

@gdevenyi gdevenyi added this to the sometime milestone Jun 20, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants