服务器资源与批量任务 - SpiralKernel/bioinfo-wiki GitHub Wiki
服务器资源与批量任务
更新:2026-10-13;状态:可用;验证范围:文档核对;操作示例未在本机运行。
任务需要同时估计计算、内存、磁盘和时间,申请线程并不等于程序会自动使用它们。
四类资源分别影响什么
CPU线程处理并行计算;内存容纳活跃数据结构;磁盘存放输入、中间文件和输出;I/O速度影响读写。更多线程未必加快内存或磁盘受限的任务,也可能增加内存需求。压缩文件大小不能直接预测解压及建索引时的峰值内存。
共享服务器应按机构规则使用登录节点和计算节点。Slurm等调度器接收资源请求后安排作业;本机没有调度器时,这些命令并不适用。
Slurm脚本结构
#!/usr/bin/env bash
#SBATCH --job-name=bioinfo-demo
#SBATCH --cpus-per-task=2
#SBATCH --mem=4G
#SBATCH --time=00:20:00
#SBATCH --output=job-%j.log
set -euo pipefail
python3 analysis.py --threads "$SLURM_CPUS_PER_TASK"
这是结构示例,analysis.py必须是支持该参数的自有程序;队列、账户和环境加载按机构文档设置。提交使用 sbatch job.sh,状态可查 squeue -u "$USER";完成后按本地配置查 sacct 的状态、用时与内存。资源申请与程序参数必须对应。
正式运行前的检查
先用代表性小数据测耗时和峰值内存,再估计完整任务;确认磁盘配额、临时目录、结果路径和日志保存。作业失败后区分时间超限、OOM内存不足、磁盘满和程序报错,再调整相应原因,不能每次都盲目增加全部资源。
拆分样本可用任务数组,但每个任务应有独立输出路径。并行多个任务时检查总体资源和输入输出竞争;断点续跑需要判断已有文件是否完整,见可复现分析与工作流管理。