Skip to main content

executor

The executor scope controls various executor behaviors.

executor.account​
Added in version 24.04

Used only by the SLURM, LSF, PBS/Torque and PBS Pro executors.

The project or organization account that should be charged for running the pipeline jobs.

executor.cpus​

Used only by the local executor.

The maximum number of CPUs made available by the underlying system.

executor.dumpInterval​

Determines how often to log the executor status (default: 5 min).

executor.exitReadTimeout​

Used only by grid executors.

Determines how long to wait for the .exitcode file to be created after the task has completed, before returning an error status (default: 270 sec).

executor.jobName​

Used only by grid executors and Google Batch.

Determines the name of jobs submitted to the underlying cluster executor:

executor.jobName = { "$task.name - $task.hash" }

The job name should satisfy the validation constraints of the underlying scheduler.

executor.killBatchSize​

Determines the number of jobs that can be killed in a single command execution (default: 100).

executor.memory​

Used only by the local executor.

The maximum amount of memory made available by the underlying system.

executor.name​

The name of the executor to be used (default: local).

executor.perCpuMemAllocation​
Added in version 23.10

Used only by the SLURM executor.

When true, memory allocations for SLURM jobs are specified as --mem-per-cpu <task.memory / task.cpus> instead of --mem <task.memory>.

executor.onlyJobState​
Added in version 26.04

Used only by the SLURM executor.

Requires SLURM 24.05 or later.

When true, job status queries use squeue --only-job-state without partition (-p) or user (-u) filters. This can reduce the load on the SLURM controller, especially if your SLURM administrator has enabled SchedulerParameters=enable_job_state_cache in your SLURM configuration. See --only-job-state for more information (default: false).

executor.perJobMemLimit​

Used only by the LSF executor.

Enables the per-job memory limit mode for LSF jobs.

executor.perTaskReserve​

Used only by the LSF executor.

Enables the per-task memory reserve mode for LSF jobs.

executor.pollInterval​

Determines how often to check for process termination. Default varies for each executor.

executor.queueGlobalStatus​
Added in version 23.04

Determines how job status is retrieved. When false only the queue associated with the job execution is queried. When true the job status is queried globally i.e. irrespective of the submission queue (default: false).

executor.queueSize​

The number of tasks the executor will handle in a parallel manner. A queue size of zero corresponds to no limit. Default varies for each executor.

executor.queueStatInterval​

Used only by grid executors.

Determines how often to fetch the queue status from the scheduler (default: 1 min).

executor.submitRateLimit​

Determines the max rate of job submission per time unit, for example '10sec' (10 jobs per second) or '50/2min' (50 jobs every 2 minutes) (default: unlimited).

executor.retry.delay​

Used only by grid executors.

Delay when retrying failed job submissions (default: 500ms).

executor.retry.jitter​

Used only by grid executors.

Jitter value when retrying failed job submissions (default: 0.25).

executor.retry.maxAttempts​

Used only by grid executors.

Max attempts when retrying failed job submissions (default: 3).

executor.retry.maxDelay​

Used only by grid executors.

Max delay when retrying failed job submissions (default: 30s).

executor.retry.reason​
Changed in version 25.10

This option was renamed from executor.submit.retry.reason to executor.retry.reason.

Used only by grid executors.

Regex pattern that when verified causes a failed submit operation to be re-tried (default: Socket timed out).

Executor-specific defaults​

Some executor settings have different default values depending on the executor.

ExecutorqueueSizepollInterval
AWS Batch100010s
Azure Batch100010s
Google Batch100010s
Grid Executors1005s
Kubernetes1005s
LocalN/A100ms

Executor-specific configuration​

Executor config settings can be applied to specific executors by prefixing the executor name with the symbol $ and using it as special scope. For example:

// block syntax
executor {
$sge {
queueSize = 100
pollInterval = '30sec'
}

$local {
cpus = 8
memory = '32 GB'
}
}

// dot syntax
executor.$sge.queueSize = 100
executor.$sge.pollInterval = '30sec'
executor.$local.cpus = 8
executor.$local.memory = '32 GB'