Parallel processing 优化SLURM集群中的并行化:以基因组比对为例

Parallel processing 优化SLURM集群中的并行化:以基因组比对为例,parallel-processing,slurm,genome,Parallel Processing,Slurm,Genome,我想了解在SLURM集群中并行使用bwa的最佳方式是什么。显然,这将取决于我作为用户的计算限制 bwa软件有一个参数“-t”,指定线程数。让我们假设我使用bwamem-t3 ref.fa samreak.fq.gz,这将意味着bwa将作业拆分为三个任务/线程。换句话说,它将同时对齐三次读取(我猜) 现在,如果我想在多个示例和SLURM集群中运行此命令,我是否应该指定bwa mem的任务数,并指定每个任务的CPU数(例如2)?这将是: sbatch -c 2 -n 3 bwa.sh 其中bwa.

我想了解在SLURM集群中并行使用bwa的最佳方式是什么。显然,这将取决于我作为用户的计算限制

bwa软件有一个参数“-t”,指定线程数。让我们假设我使用
bwamem-t3 ref.fa samreak.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

你有什么建议吗?或者你能改进/纠正我的推理吗?

使用
-c2
你要求每个任务有2个CPU

使用
-n3
您要求完成3项任务

该配置准备了一组资源,其中包括最多3个不同节点中的6个CPU。但是您的脚本只使用了3个CPU(
-t3
),因此您正在浪费资源,并且可能使用了不属于您的资源(因为任务将使用3个CPU,而您只要求每个任务使用2个CPU)

对于该特定脚本,
-c3
是正确的参数(另一个默认为一个任务):

sbatch -c 3 bwa.sh