我想了解在SLURM集群中并行使用bwa的最佳方法是什么。显然,这取决于我作为用户的计算限制。
bwa软件具有用于指定线程数的参数“ -t”。假设我使用bwa mem -t 3 ref.fa sampleA.fq.gz
,这意味着bwa将作业拆分为三个任务/线程。换句话说,它将同时对齐三个读取(我想)。
现在,如果我想在多个示例和SLURM集群中运行此命令,我是否应该像bwa mem一样指定任务数,并指定每个任务的CPU数(例如2)?将会是:
sbatch -c 2 -n 3 bwa.sh
其中bwa.sh包含以下内容:
cat data.info | while read indv; do
bwa mem -t 3 ref.fa sample${indv}.fq.gz
done
您有什么建议吗?还是可以改善/纠正我的推理?
答案 0 :(得分:1)
对于-c 2
,您要求每个任务有2个CPU。
使用-n 3
,您要执行3个任务。
该配置准备了一组资源,其中包括最多3个不同节点中的6个CPU。但是您的脚本仅使用3个CPU(-t 3
),因此您正在浪费资源,并且可能正在使用不属于您的资源(因为该任务将使用3个CPU,并且每个任务只要求2个CPU)。 / p>
对于该特定脚本,-c 3
是适当的参数(另一个默认为一个任务):
sbatch -c 3 bwa.sh