Windows群集上的并行R.

时间:2013-07-09 12:19:28

标签: r parallel-processing cluster-computing snow

我的Windows HPC Server在后端运行了一些节点。我想使用后端的多个节点运行Parallel R.我认为Parallel R可能在Windows上使用SNOW,但不太确定。我的问题是,我是否还需要在后端节点上安装R? 假设我想使用两个节点,每个节点32个核心:

cl <- makeCluster(c(rep("COMP01",32),rep("COMP02",32)),type="SOCK")

现在,它只是挂起。

我还需要做什么?后端节点是否需要运行某种sshd以便能够相互通信?

1 个答案:

答案 0 :(得分:9)

在Windows群集上设置snow相当困难。每台机器都需要安装R和snow,但这很容易。要启动SOCK集群,您需要在每台工作计算机上运行一个sshd守护程序,但是您仍然可能遇到麻烦,所以除非您擅长调试和Windows系统管理,否则我不会推荐它。

我认为Windows群集的最佳选择是使用MPI。我自己在Windows上没有任何MPI经验,但我听说有人在Windows上使用MPICH和DeinoMPI MPI发行版取得了成功。在群集上安装MPI后,还需要在每台工作计算机上安装源代码中的Rmpi软件包。然后,您将使用makeMPIcluster函数创建集群对象。这是一项很多工作,但我认为由于Windows上的ssh / sshd问题,它最终可能比尝试使用SOCK集群更有效。

如果您迫切希望在Windows群集上运行一次或两次并行作业,则可以尝试使用手动模式。它允许您创建不带ssh的SOCK集群:

workers <- c(rep("COMP01",32), rep("COMP02",32))
cl <- makeSOCKluster(workers, manual=TRUE)

makeSOCKcluster函数将提示您启动每个工作程序,显示每个工作程序使用的命令。您必须在指定的计算机上手动打开命令窗口并执行指定的命令。它可能非常繁琐,特别是对于许多工人来说,但至少它并不复杂或棘手。与outfile=''选项结合使用时,它也非常有用。