8

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

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

现在,它只是挂起。

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

4

1 回答 1

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=''与该选项结合使用时,它对于调试也非常有用。

于 2013-07-09T14:48:11.883 回答