簡體   English   中英

"如何使用降雪和多個 Windows 節點在 R 中設置工作人員以進行並行處理?"

[英]How to setup workers for parallel processing in R using snowfall and multiple Windows nodes?

我已經成功地使用降雪在具有 16 個處理器的單個服務器上設置了一個集群。

require(snowfall)
if (sfIsRunning() == TRUE) sfStop()

number.of.cpus <- 15
sfInit(parallel = TRUE, cpus = number.of.cpus)
stopifnot( sfCpus() == number.of.cpus )
stopifnot( sfParallel() == TRUE )

# Print the hostname for each cluster member
sayhello <- function()
{
    info <- Sys.info()[c("nodename", "machine")]
    paste("Hello from", info[1], "with CPU type", info[2])
}
names <- sfClusterCall(sayhello)
print(unlist(names))

我在 Windows Server 2016 上設置了 HPC 集群。最初嘗試使用MPICH2 ,但放棄了 2013 年適用於 Windows 的最新穩定版本 1.4.1,從那時起就不再支持。

所以決定使用 MS MPI 並使用默認支持 MS MPI 的pbdMPI包。 pbdMPI實現了SPMD范式,而Rmpi使用管理器/工作器並行性。 SPMD 似乎更容易管理和掌握(至少對我而言)。

分步指南:

  1. 在未來的 Windows HPC 集群中的所有機器上安裝MS MPI v.10.1.2
  2. 創建一個所有節點都可以訪問的目錄,其中 R-scripts / 資源將駐留,例如\\HeadMachine\\SharedDir
  3. MS MPI 啟動服務 ( MsMpiLaunchSvc ) 必須在所有計算機上運行。
  4. MS MPI 必須有權代表在操作系統中注冊的同一用戶在所有節點上運行 R 應用程序,例如SharedUser ,其名稱和密碼在所有機器上都相同。
  5. R 必須代表SharedUser用戶啟動。
  6. 指定mpiexec.exe-wdir選項,它是具有共享資源的目錄的網絡路徑。
  7. 指定mpiexec.exe–pwd選項,這是SharedUser用戶的密碼,例如SharedUserPassword
  8. 指定mpiexec.exe–machinefile選項,它是hosts.txt文本文件的路徑,例如С:\\MachineFileDir\\hosts.txt
  9. hosts.txt文件必須可從指定路徑的頭節點讀取,並包含要在其上運行 R 腳本的節點的 IP 地址列表。
  10. 最后,使用以下選項執行mpiexec

mpiexec.exe -n %1 -machinefile "C:\\MachineFileDir\\hosts.txt" -pwd SharedUserPassword –wdir "\\HeadMachine\\SharedDir" Rscript hello.R

  1. 作為第 11 步的結果,MPI 將以 $SharedUser$ 的身份使用密碼 $SharedUserPassword$ 登錄,並在hosts.txt文件中列出的每台計算機上執行 R 進程的副本。

上述步驟 11 中使用的文件。

你好.R

library(pbdMPI, quiet = TRUE)
init()
cat("Hello World from
process",comm.rank(),"of",comm.size(),"!\n")
finalize()

主機.txt

hosts.txt 文件,稱為 MPI 機器文件,是一個文本文件,其中的行包含將執行 R 的計算機的網絡名稱。 在每一行中,計算機名稱后用空格分隔(對於 MS MPI),要執行的 MPI 進程數。 通常它等於每個節點中的處理器數量。

hosts.txt示例,其中三個節點各有 2 個處理器:

192.168.0.1 2
192.168.0.2 2
192.168.0.3 2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM