R中的并行计算:如何选择核心

时间:2015-02-27 16:05:23

标签: r parallel-processing cluster-computing rparallel

在R中,我使用包" doParallel"和" foreach"并行计算。最近,我在HPC运行该程序。它有四个节点,每个节点有16个处理器。我的R程序只需要4个处理器。但HPC总是将程序分配给占用所有16​​个处理器的一个节点。所以我不能在那个节点中运行任何其他程序。 如何在一个节点中选择自定义数量的处理器?如何在一个节点中选择未运行程序的处理器? 我用

library(foreach)
library(doParallel)
library(MASS)
registerDoParallel(makeCluster(4))

我只需要使用4个处理器。但是hpc总是将一个程序分配给一个节点中的所有处理器(实际上程序在4个处理器中运行)。 例如,一个节点有16个处理器。我有四个程序,每个程序需要四个核心。如何将四个程序放在一个节点中?

1 个答案:

答案 0 :(得分:0)

parallel::detectCores()应该为您提供核心数量。

我通常使用的习语是parallel::detectCores()

的混音
library(parallel)
library(doParallel)


num_cores <- detectCores()
cl <- makeCluster(num_cores)
registerDoParallel(cl)

# parallel code here

# stop cores/cluster
stopCluster(cl)
registerDoSEQ()