Skip to content
Merged
Changes from 3 commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
3abb561
feat: job arrays
johanneskoester Nov 29, 2024
5e8acca
Update snakemake_executor_plugin_slurm/__init__.py
johanneskoester Dec 20, 2024
f9cb5ad
Merge branch 'main' into feat/jobarrays
cmeesters Jan 25, 2025
6e3742c
Merge branch 'main' into feat/jobarrays
cmeesters Mar 7, 2025
72b12ad
Merge branch 'main' into feat/jobarrays
cmeesters Jan 22, 2026
cce6fac
Merge branch 'main' into feat/jobarrays
cmeesters Feb 13, 2026
dbc04de
fix: merge conflict
cmeesters Feb 25, 2026
8c580ec
feat: basic job wait implementation for arrays
cmeesters Feb 25, 2026
720147d
fix: formatting
cmeesters Feb 25, 2026
af558f7
feat: updated testing code
cmeesters Feb 25, 2026
1504763
fix: typo
cmeesters Feb 25, 2026
be01b04
fix: typo
cmeesters Feb 25, 2026
80e587c
fix: consider 'all' case - then all jobs are considered array jobs, i…
cmeesters Feb 25, 2026
cc6a84d
fix: async execution added.
cmeesters Feb 25, 2026
5d8cf01
refactor: submit_string woring for both arrays and ordinary jobs
cmeesters Feb 26, 2026
1358be1
feat: added two helper functions: pending_jobs_for_rule and get_job_w…
cmeesters Feb 26, 2026
6120c1b
feat: started implementation of array job submission
cmeesters Feb 26, 2026
8152280
feat: avoiding array limit by raising WorkflowError 'not implemented'
cmeesters Feb 26, 2026
25cd8d0
one step further in implementing arrays
cmeesters Feb 26, 2026
f97d708
fix: formatting
cmeesters Mar 4, 2026
97831ca
fix: jobid handling for array jobs
cmeesters Mar 6, 2026
83a1ba0
fix: submitting without stalling - not yet working. There is a block …
cmeesters Mar 6, 2026
ef477d0
proposed fix for https://github.com/snakemake/snakemake-executor-plug…
Mar 6, 2026
0cf6eed
fix: deadlock issue
cmeesters Mar 9, 2026
8d033ce
Merge branch 'main' of github.com:snakemake/snakemake-executor-plugin…
cmeesters Mar 9, 2026
ed1e50d
Merge branch 'main' of github.com:snakemake/snakemake-executor-plugin…
cmeesters Mar 9, 2026
009c164
fix: group job handling before array job handling to avoid api issue
cmeesters Mar 10, 2026
57485b8
docs: added array documentation
cmeesters Mar 10, 2026
c8fa068
docs: documented the slurm-arra-limit flag
cmeesters Mar 10, 2026
842753e
Fix small errors in further.md
fbartusch Mar 10, 2026
081ecca
test: added array testcases
cmeesters Mar 10, 2026
ee39c7c
Merge branch 'feat/jobarrays' of github.com:snakemake/snakemake-execu…
cmeesters Mar 10, 2026
bb91765
fix: merge conflict
cmeesters Mar 10, 2026
c5a92f8
Merge branch 'feat/jobarrays' of github.com:snakemake/snakemake-execu…
cmeesters Mar 10, 2026
6c1cbc3
fix: formatting
cmeesters Mar 10, 2026
eba3612
Merge branch 'feat/jobarrays' of github.com:snakemake/snakemake-execu…
cmeesters Mar 10, 2026
2b2ae25
fix: formatting
cmeesters Mar 10, 2026
c5d22e3
fix: typo
cmeesters Mar 10, 2026
ef6da07
fix: syntax (critical)
cmeesters Mar 10, 2026
938c1f2
Fix syntax. Add black format changes.
fbartusch Mar 10, 2026
3f7549a
fix: formatting
cmeesters Mar 10, 2026
a099a23
Merge branch 'feat/jobarrays' of github.com:snakemake/snakemake-execu…
cmeesters Mar 10, 2026
a80e0ed
feat: setting max array size by cluster limit - taking minimum of arr…
cmeesters Mar 10, 2026
6831182
refactor: get_max_array_size function due to stupid copilot overwrite
cmeesters Mar 10, 2026
78eaf2b
feat: added array limit validation
cmeesters Mar 10, 2026
c766ca5
refactor: array limit validation
cmeesters Mar 10, 2026
3eed042
refactor: logfile type conversion
cmeesters Mar 10, 2026
94e7a0e
fix: gnarf - wrote shutils.split - is shlex!
cmeesters Mar 11, 2026
e3e6ff9
fix: missing f-string for exec_job in shell handshake
cmeesters Mar 11, 2026
83f65ba
fix: better error message for failed array job submission
cmeesters Mar 11, 2026
74d79be
fix: tests for array jobs, deleted one useless tests (sbatch failures)
cmeesters Mar 11, 2026
329948b
fix: node exclusion is optional
cmeesters Mar 11, 2026
78ba68f
fix: deleted accidentially added backup file
cmeesters Mar 11, 2026
dad46b5
fix: node exclusion is optional
cmeesters Mar 11, 2026
ff3f39a
fix: more stable status checks, if CI file system issue
cmeesters Mar 11, 2026
9e1ec44
fix: better prefix for slurm logfiles for array jobs
cmeesters Mar 11, 2026
b2306d4
fix: deleted pending_jobs_for_rule - not used
cmeesters Mar 11, 2026
b90d19b
fix: formatting
cmeesters Mar 11, 2026
b5e9226
fix: removed unused import
cmeesters Mar 11, 2026
38a7ab5
fix: removed unused import
cmeesters Mar 11, 2026
03c91f1
fix: formatting
cmeesters Mar 11, 2026
18dc93f
fix: max array size is max array size -1 under SLURM
cmeesters Mar 11, 2026
1001ee7
fix: submission in chuncks working again - not blocking - encoding to…
cmeesters Mar 16, 2026
07a0cc6
fix: now accounting for lost tick mark
cmeesters Mar 16, 2026
ed03477
fix: restored behaviour for first job (not in array execs), now consi…
cmeesters Mar 16, 2026
f340640
tests: new snakefile for array job tests
cmeesters Mar 16, 2026
b1603fc
tests: new test cases for array jobs
cmeesters Mar 16, 2026
3471cfa
fix: restored previous function
cmeesters Mar 16, 2026
2c7244f
fix: formatting
cmeesters Mar 16, 2026
b2bd750
fix: formatting
cmeesters Mar 16, 2026
d4da0b1
fix: trailing whitespace
cmeesters Mar 16, 2026
da0536c
Merge branch 'main' into feat/jobarrays
cmeesters Mar 16, 2026
ae8e765
Fix: catch type error
fbartusch Mar 16, 2026
f8dce8e
feat: updated jobstep requirement (just merged on bioconda)
cmeesters Mar 18, 2026
be64f6d
fix: update snakemake dependency
cmeesters Mar 25, 2026
da28f81
fix: introducing a storage class to ensure the presence of a test sui…
cmeesters Mar 25, 2026
c94716e
Merge branch 'main' into feat/jobarrays
cmeesters Mar 25, 2026
9dcf4cc
fix: apparently the fixed stage-in of local test cases shadowed the o…
cmeesters Mar 25, 2026
2b1edf9
Merge branch 'feat/jobarrays' of github.com:snakemake/snakemake-execu…
cmeesters Mar 25, 2026
0569e7b
fix: adding a default method to get config settings (returns None)
cmeesters Mar 25, 2026
900ab1a
fix: the executor stalled after a local rule, because the previous im…
cmeesters Mar 25, 2026
494cd16
fix: changed two logger settings to debug in the array submission cod…
cmeesters Mar 25, 2026
bc47aa3
fix: one more status query timing message from info to debug
cmeesters Mar 25, 2026
94805ec
feat: stabilizing array submission with adding a memory fudge factor …
cmeesters Mar 26, 2026
36d680e
feat: version bump: jobstep plugin 0.6 is required - better memory ha…
cmeesters Mar 26, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions snakemake_executor_plugin_slurm/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import atexit
import csv
from io import StringIO
from itertools import groupby
import os
from pathlib import Path
import re
Expand Down Expand Up @@ -168,6 +169,20 @@ def warn_on_jobcontext(self, done=None):
def additional_general_args(self):
return "--executor slurm-jobstep --jobs 1"

def run_jobs(self, jobs: List[JobExecutorInterface]):
for rule_name, group in groupby(jobs, key=lambda job: job.rule.name):
same_rule_jobs = list(group) # Materialize the generator
if len(same_rule_jobs) == 1:
self.run_job(same_rule_jobs[0])
else:
# TODO submit as array
# share code with run_job

# TODO in the future: give a hint to the scheduler to select preferably
# many jobs from the same rule if possible, in order to have
# more efficient array jobs. This should be somehow tunable, because
# it might contradict other efficiency goals.
...
def run_job(self, job: JobExecutorInterface):
# Implement here how to run a job.
# You can access the job's resources, etc.
Expand Down