You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HPC集群Slurm提交dada2 R代码无法多线程运行排查求助

HPC集群上dada2 R代码无法并行的排查求助

我在HPC集群上提交的dada2 R代码始终无法并行运行,按dada2官方文档说明,给multithread = #参数指定整数后,该参数会传递给setThreadOptions()以调用对应数量的核心,但实际代码仅使用1个核心。

CPU效率数据

CPU_Efficiency    Number_of_CPUs_In_Use
16.30%    (0.98 of 6)

Number_of_CPUs_In_Use偶尔会升至1.05,但从未超过该数值。

文档提到加载dada2库即可实现多线程(它会自动加载Rcpp包),但我注意到setThreadOptions()属于RcppParallel包,尝试额外加载该包后依然没有效果。

提交用的Slurm脚本

#! /bin/bash -l
#SBATCH --mail-user=mail@mail.de
#SBATCH --partition=x
#SBATCH --nodes=1
#SBATCH --ntasks=6
#SBATCH --mem=20GB
#SBATCH --time=00-12:00:00
#SBATCH --qos=standard

module add R-bundle-Bioconductor/3.16-foss-2022b-R-4.2.2
LC_ALL=en_US.UTF-8 R --no-save

mpirun -n 1 Rscript script.R ${SLURM_NTASKS} 

运行的R脚本(script.R)

setwd("/wd")
library("dada2")
library("RcppParallel")
load("data.RData")

ddF <- dada(derepF, err = errF, multithread = 6)
ddR <- dada(derepR, err = errR, multithread = 6)

代码运行正常,输出结果符合预期,但就是无法利用多核心并行。我已经尝试过以下操作:

  • 在bash脚本中改用${SLURM_CPUS_PER_TASK}替代${SLURM_NTASKS}
  • 尝试加载/不加载RcppParallel包
  • 设置multithread = TRUE

恳请协助排查原因。


内容的提问来源于stack exchange,提问作者user27638173

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 12:43:26