LSF Setup
Configure the pipeline for LSF (IBM Spectrum LSF) cluster execution.
Overview
The pipeline includes a pre-configured LSF profile at cluster/lsf/config.yaml that handles:
- Job submission via
bsub
- Memory and queue allocation
- GPU job routing
- Resource limits
Quick Start
| Bash |
|---|
| # Run with LSF profile
pixi run snakemake --profile cluster/lsf --configfile=config/config.yml
# Or use the test shortcut
pixi run test-lsf
|
Profile Configuration
Location
Full Configuration
| YAML |
|---|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 | executor: lsf
jobs: 300
default-resources:
- 'mem_mb=8'
- 'lsf_queue=rna'
- 'lsf_project=aatrnaseq'
- 'lsf_extra=""'
resources:
- ngpu=12
set-resources:
- rebasecall:lsf_queue="gpu"
- rebasecall:lsf_extra="-gpu num=1:j_exclusive=yes"
- rebasecall:ngpu=1
- rebasecall:mem_mb=24
- classify_charging:lsf_queue="gpu"
- classify_charging:lsf_extra="-gpu num=1:j_exclusive=yes"
- classify_charging:ngpu=1
- classify_charging:mem_mb=24
- remora_signal_stats:mem_mb=24
- bwa_align:mem_mb=24
- modkit_extract_calls:mem_mb=96
- warpdemux:mem_mb=32
- parse_warpdemux:mem_mb=8
printshellcmds: True
show-failed-logs: True
latency-wait: 15
|
Configuration Options
Global Settings
| Option |
Value |
Description |
executor |
lsf |
Use LSF executor |
jobs |
300 |
Maximum concurrent jobs |
latency-wait |
15 |
Seconds to wait for file sync |
Default Resources
Applied to all rules unless overridden:
| Resource |
Value |
Description |
mem_mb |
8 |
Memory in GB |
lsf_queue |
rna |
Default LSF queue |
lsf_project |
aatrnaseq |
Project for accounting |
lsf_extra |
"" |
Additional bsub options |
GPU Resource Limit
Limits total concurrent GPU jobs to 12. Adjust based on your cluster's GPU availability.
Per-Rule Resources
GPU Rules
These rules are automatically submitted to the GPU queue:
| Rule |
Queue |
Memory |
GPU |
rebasecall |
gpu |
24 GB |
1 (exclusive) |
classify_charging |
gpu |
24 GB |
1 (exclusive) |
Memory-Intensive Rules
| Rule |
Memory |
modkit_extract_calls |
96 GB |
warpdemux |
32 GB |
remora_signal_stats |
24 GB |
bwa_align |
24 GB |
Customization
Change Default Queue
Edit lsf_queue in default-resources:
| YAML |
|---|
| default-resources:
- 'lsf_queue=your_queue'
|
Change Project Tag
For job accounting:
| YAML |
|---|
| default-resources:
- 'lsf_project=your_project'
|
Adjust Max Jobs
Reduce if you're filling up the queue:
Increase Memory for a Rule
Add or modify in set-resources:
| YAML |
|---|
| set-resources:
- your_rule:mem_mb=64
|
Change GPU Queue Name
If your GPU queue has a different name:
| YAML |
|---|
| set-resources:
- rebasecall:lsf_queue="your_gpu_queue"
- classify_charging:lsf_queue="your_gpu_queue"
|
Monitoring Jobs
View All Jobs
View Job Details
View Job History
Kill All Jobs
| Bash |
|---|
| bkill 0 # Kill all your jobs
|
View Queue Status
Submit Scripts
For long-running pipelines, use a submit script:
Submit:
Troubleshooting
Jobs Pending Too Long
Check queue limits:
Reduce concurrent jobs:
Memory Errors
Increase memory for the failing rule:
| YAML |
|---|
| set-resources:
- failing_rule:mem_mb=128
|
GPU Jobs Not Starting
Check GPU queue availability:
Verify GPU resource syntax for your cluster.
File Sync Errors
Increase latency wait:
Next Steps