【问题标题】:Parallel R on a Windows clusterWindows 集群上的并行 R
【发布时间】:2013-07-07 01:06:17
【问题描述】:

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

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

现在,它只是挂起。

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

【问题讨论】:

  • 是的,您确实需要在每个节点上安装 R。
  • @HongOoi 我需要指定 R 的位置还是只使用默认位置?

标签: r parallel-processing cluster-computing snow


【解决方案1】:

在 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='' 选项进行调试也非常有用。

【讨论】:

  • @_Steve Weston:感谢史蒂夫的帮助。当您说“手动模式”来运行并行作业时,您是什么意思?
  • @Manolete 我添加了有关手动模式的更多信息来回答您的问题。
  • +1 前两段非常有用。为什么没有指南/文档可以解释这一点?
  • 我相信提问者和回答者都已经知道了,但对于我们这些磕磕绊绊的人来说......截至 0.6-4 in Windows per cran.r-project.org/web/packages/Rmpi/README Microsoft MPI 用于 Windows 机器默认情况下,需要先安装。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-16
  • 2017-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-08
相关资源
最近更新 更多