Open sirintra opened 3 months ago
This is not supposed to work, see the docs on this flag, without tinkering with job dependencies. I wonder: Is this a left-over from the pre-plugin situation?
Anyway, immediate submission is actually not possible (due to missing files) when no dependencies are defined on the SLURM site. The plugin is oblivious to the workflow. It cannot define dependencies, as it "sees" a job at a time. This is not a big issue, scheduling wise, as SLURM (which might change in the future) does not assign a higher priority to waiting jobs with a dependency, only to those without.
We really need to implement a refusal if the SLURM executor is present.
Thanks for the explanation. It seems that the immediate-submit
function has been removed along with the deprecated --cluster
flag. As a result, I wonder if it is still possible to submit all jobs from a workflow simultaneously onto the SLURM job queue?
Most of my workflows involve several thousand jobs, many of which are processed in parallel. These workflows typically take 6-8 hours to complete. Unfortunately, keeping a terminal open and reliably connected to the cluster for such extended periods is impractical. Additionally, our login sessions have a time limit of 3 hours.
Given this context, I am unsure of the most feasible approach to run my workflow on the HPC. Could you kindly recommend a workaround? Should I consider making a snakemake job submission process as a long-running SLURM job itself? Your insights would be greatly appreciated!
Lastly, I wonder if there are any plans to reintroduce an equivalent feature to immediate-submit
in Snakemake version 8. Perhaps this functionality could be added to the snakemake-executor-plugin-cluster-generic
? I'm sure that such an enhancement would greatly benefit users, as it provides an efficient approach for executing workflows.
... connected to the cluster for such extended periods is impractical.
You could run your workflow in a terminal multiplexer (e.g. "screen" or "tmux"), observe, that it is starting correctly, detach, log off, go for lunch, chat with a labmate (or whatever), log in again and re-attach.
Additionally, our login sessions have a time limit of 3 hours.
I get this a lot. You could approach your friendly admins and tell them that Snakemake does not accumulate CPU time and is mostly dormant (except for localrules like plotting, download, etc. - which you would execute on a login node anyway and are hardly noticed by admins and do not hinder others).
I am trying to work on a remedy so ensure within SLURM-context submissions. Not sure, it will work reliably.
Lastly, I wonder if there are any plans to reintroduce an equivalent feature to immediate-submit
Not that I am aware of, but I asked about the stance (internally) already. Snakemake itself, see about, does handle the dependencies. Perhaps, there is a way, I will let you know. Do not close the issue until then.
Software Versions Snakemake 8.16.0 snakemake-executor-plugin-slurm 0.9.0 slurm 23.11.7
Describe the bug I have recently moved to Snakemake v8.16 and have been trying to execute Snakemake with the
--immediate-submit
flag in order to submit all jobs to a SLURM cluster simultaneously. However, the immediate submit functionality does not seem to function properly. A simple workflow using thesnakemake-executor-plugin-slurm
works as expected without the--immediate-submit
flag. When the immediate-submit is enabled, Snakemake continuously checks for input files for the next step, even while a submitted job is still running. Consequently, job submission terminates prematurely with aMissingOutputException
.Is there any other configuration required to ensure that the immediate-submit flag functions correctly? I’m convinced that its current behaviour is unintended.
Logs Execute snakemake without immediate-submit flag work fine Command executed: snakemake -s snakefile --profile slurm
Execute snakemake with immediate-submit flag failed to submit all jobs and exit prematurely with the following error: Command executed: snakemake -s snakefile --profile slurm --immediate-submit --notemp
Minimal example
Content of the snakefile:
Additional context
config.yaml file: