2013-07-09 310 views
7

我有一個Windows HPC服務器在後端運行一些節點。我想使用後端的多個節點來運行Parallel R。我認爲Parallel R可能在Windows上使用SNOW,但不太確定。我的問題是,我是否需要在後端節點上安裝R? 說我想用兩個節點,每個節點32個核心:現在Windows羣集上的並行R

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

,它只是掛起。

我還需要做什麼?後端節點是否需要運行某種sshd才能夠相互通信?

+1

是的,你需要在每個節點上安裝R。 –

+1

@HongOoi,我需要指定R的位置還是隻需要默認的? – Manolete

回答

7

在Windows集羣上設置snow相當困難。每臺機器都需要安裝R和snow,但這很簡單。要啓動一個SOCK羣集,你需要在每個工作機器上運行一個sshd守護進程,但是你仍然可能遇到麻煩,所以除非你擅長調試和Windows系統管理,否則我不會推薦它。

我認爲您在Windows羣集上的最佳選擇是使用MPI。我自己對Windows上的MPI沒有任何經驗,但我聽說有人在MPICH和DeinoMPI MPI發行版上取得了成功。一旦將MPI安裝到羣集上,還需要在每臺工作機器上安裝來自源的Rmpi軟件包。然後您將使用makeMPIcluster函數創建羣集對象。這是很多工作,但我認爲由於Windows上的ssh/sshd問題,最終可能會比嘗試使用SOCK羣集更有效。

如果您不顧一切地在Windows羣集上運行一次或兩次並行作業,可以嘗試使用手動模式。它允許你創建襪子集羣不使用SSH:

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

makeSOCKcluster功能將提示您啓動工人中的每一個,顯示該命令用於每個。您必須在指定的機器上手動打開命令窗口並執行指定的命令。這可能是非常乏味的,特別是對於很多工人來說,但至少它並不複雜或棘手。與outfile=''選件結合使用時,它也可以非常有用。

+0

@_Steve Weston:謝謝你的幫助Steve。當你說「手動模式」來運行並行作業時,你是什麼意思? – Manolete

+0

@Manolete我在手動模式中添加了更多信息來回答你的問題。 –

+0

+1前兩段非常有用。爲什麼沒有可以解釋這個問題的指南/文檔? – TMS