簡體   English   中英

為什么在 slurm 集群上並行化 R 代碼時只有一個節點工作

[英]Why only one node works when parallelize R code on a slurm cluster

我的測試代碼是

rm(list = ls())

library(parallel)
#setwd("/home/121090562/TestWorkspace/")

fun <- function(x){
return (x+1);
}

cl <- makeCluster(80)
ptm <- proc.time()
system.time({
res <- parLapply(cl, 1:50000000,  fun)
});
print(proc.time() - ptm)
stopCluster(cl)

我想使用兩個節點,每個節點有 40 個 CPU,但只有一個節點工作而不是 2 個,這意味着只有 40 個 CPU 工作。

工作文件是

#!/bin/bash

#SBATCH --job-name Cores.R
#SBATCH --partition warshel-cpu
#SBATCH --nodes=2
#SBATCH --time 1-00:00:00
#SBATCH --ntasks 80
#SBATCH --output /...
#SBATCH --error /...
cd /...
R --vanilla --slave < Cores.R

如果不使用Rmpi package(或SlurmCluster (?))之類的東西,R 就無法進行節點間通信。 您當前的設置僅限於單個節點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM