11# LSF + Apptainer backend
22
33Sprocket contains an experimental High-Performance Computing (HPC) backend
4- targeting environments that use [ LSF
5- 10.1.0] ( https://www.ibm.com/docs/en/spectrum-lsf/10.1.0 ) for job scheduling and
6- [ Apptainer 1.3.6] ( https://apptainer.org/docs/user/1.3/ ) as a container runtime.
4+ targeting environments that use [ LSF 10.1.0 or
5+ later] ( https://www.ibm.com/docs/en/spectrum-lsf/10.1.0 ) for job scheduling and
6+ [ Apptainer 1.3.6 or later] ( https://apptainer.org/docs/user/1.3/ ) as a container
7+ runtime.
78
89> [ !WARNING]
910>
1011> This backend is experimental, and its behavior and configuration may change
1112> substantially between Sprocket releases.
1213
14+ For a step-by-step walkthrough of setting up Sprocket on an LSF cluster, see the
15+ [ LSF + Apptainer guide] ( /guides/lsf ) .
16+
1317To execute WDL workflows and tasks using the LSF + Apptainer backend, you must
1418be running Sprocket on a Linux system with the LSF command-line tools available
1519locally. The nodes where LSF dispatches jobs must have the Apptainer
@@ -21,56 +25,64 @@ using the HPC:
2125``` toml
2226# The LSF + Apptainer backend requires explicitly opting into experimental
2327# features.
24- run.experimental_features_enabled = true
28+ [run ]
29+ experimental_features_enabled = true
2530
2631# Set the default backend to LSF + Apptainer.
27- run.backends.default.type = " lsf_apptainer"
32+ [run .backends .default ]
33+ type = " lsf_apptainer"
2834
2935# The LSF queue used by default for task execution.
3036#
3137# This parameter is optional. If it's absent and no other applicable queues
3238# are specified, jobs will be submitted to your LSF cluster's default queue.
33- # run.backends.default. default_lsf_queue.name = "standard"
39+ # default_lsf_queue.name = "standard"
3440# The largest number of CPUs and memory that can be reserved for a single job
3541# on this queue.
3642#
3743# These parameters are optional, and should be set according to site-specific
3844# information about the hosts available to dispatch work from the queue. They
3945# can also be set for the other types of queues, but this example leaves them
4046# unconstrained by default.
41- # run.backends.default. default_lsf_queue.max_cpu_per_task = 64
42- # run.backends.default. default_lsf_queue.max_memory_per_task = "96 GB"
47+ # default_lsf_queue.max_cpu_per_task = 64
48+ # default_lsf_queue.max_memory_per_task = "96 GB"
4349
4450# The LSF queue used for short tasks.
4551#
4652# This parameter is optional, and overrides `default_lsf_queue`.
47- # run.backends.default. short_task_lsf_queue.name = "short"
53+ # short_task_lsf_queue.name = "short"
4854
4955# The LSF queue used for GPU tasks.
5056#
5157# This parameter is optional, and overrides `default_lsf_queue` and
5258# `short_task_lsf_queue`.
53- # run.backends.default. gpu_lsf_queue.name = "gpu"
59+ # gpu_lsf_queue.name = "gpu"
5460
5561# The LSF queue used for FPGA tasks.
5662#
5763# This parameter is optional, and overrides `default_lsf_queue` and
5864# `short_task_lsf_queue`.
59- # run.backends.default. fpga_lsf_queue.name = "fpga"
65+ # fpga_lsf_queue.name = "fpga"
6066
6167# Additional command-line arguments to pass to `bsub` when submitting jobs to
6268# LSF.
63- # run.backends.default. extra_bsub_args = ["-app", "my_app_profile"]
69+ # extra_bsub_args = ["-app", "my_app_profile"]
6470
65- # The maximum number of subtasks each `scatter` will try executing at once.
66- #
67- # This is *not* a direct limit on the total number of concurrent tasks, but
68- # can affect the number of jobs that get queued at one time.
69- # run.backends.default.max_scatter_concurrency = 100
71+ # The maximum number of concurrent `bsub` processes the backend will spawn to
72+ # queue tasks. Defaults to `10`. Consider raising this for large-scale
73+ # workflow execution.
74+ # max_concurrency = 10
75+
76+ # Prefix added to every LSF job name. Useful for identifying Sprocket jobs
77+ # in `bjobs` output (e.g., `bjobs -J "sprocket*"`).
78+ # job_name_prefix = "sprocket"
79+
80+ # Task monitor polling interval in seconds. Defaults to `30`.
81+ # interval = 30
7082
7183# Additional command-line arguments to pass to `apptainer exec` when executing
7284# tasks.
73- # run.backends.default. extra_apptainer_exec_args = ["--hostname=\"my_host\""]
85+ # extra_apptainer_exec_args = ["--hostname=\"my_host\""]
7486```
7587
7688If you run into problems or have other feedback, please reach out to us in the
0 commit comments