Mic*_*l K 5 parallel-processing hpc future r slurm
我试图使用 future.batchtools 包在 SLURM HPC 上并行化 R 文件。虽然脚本在多个节点上执行,但它只使用 1 个 CPU 而不是可用的 12 个。
到目前为止,我尝试了不同的配置(参见附上的代码),但都没有达到预期的结果。我的 bash 文件配置如下:
#!/bin/bash
#SBATCH --nodes=2
#SBATCH --cpus-per-task=12
R CMD BATCH test.R output
Run Code Online (Sandbox Code Playgroud)
在 R 中,我使用 foreach 循环:
# First level = cluster
# Second level = multiprocess
# https://cran.r-project.org/web/packages/future.batchtools/vignettes/future.batchtools.html
plan(list(batchtools_slurm, multiprocess))
# Parallel for loop
result <- foreach(i in 100) %dopar% {
Sys.sleep(100)
return(i)
}
Run Code Online (Sandbox Code Playgroud)
如果有人可以指导我如何为多个节点和多个核心配置代码,我将不胜感激。
由于您正在批量运行并使用多个节点,因此请考虑将 MPI 与mclapply的多核分支结合起来。这些更接近硬件中实际发生的情况,并提供每个节点的 R 实例数量和每个实例的核心使用之间的控制。示例 SLURM 和 PBS 脚本以及随附的 R 批处理脚本位于https://github.com/RBigData/mpi_balance中,说明了如何平衡多核和多节点并行性。