Dry Lab / Computational: out of memory (oom)
Job killed by the scheduler or OS for exceeding allocated memory.
Ranked causes
- Requested memory allocation too low for the input sizeExit code 137 / OOM-killer entry in dmesg or scheduler log.
- Input dataset much larger than expected (wrong or unfiltered file set)File size / read count far above the protocol's expected footprint.
- Memory leak or unbounded in-memory accumulation in the scriptMemory usage climbs steadily over the run instead of plateauing.
- Batch size too large for available memory per workerOOM occurs at a predictable point tied to batch index.
- Too many parallel threads/workers each holding a full copy of the datasetMemory use scales roughly linearly with the thread count.
Recovery steps
- Increase the Slurm memory flag (e.g. --mem=32G → --mem=64G)The single fastest fix when the job is simply under-provisioned.
- Reduce batch size and re-runLowers peak memory per iteration at the cost of some throughput.
- Verify input file sizes against the protocol's expected datasetCatches a wrong or unfiltered material input before more memory is requested.
- Reduce thread/worker count so fewer dataset copies are held in memory simultaneouslyTrades wall-clock time for memory headroom.
Controls first
- Did a smoke-test / small control input complete without OOM on the same allocation?If yes: Input size or batching — not a broken scheduler allocation for tiny jobs.
- Did the job exit with code 137 or an explicit OOM-killer log entry?If yes: Confirmed memory kill — increase allocation or reduce batch/thread footprint.
Related symptoms
Opens Diagnostics capture with this first-party playbook behind it. Sign in if the workspace asks.