簡體   English   中英

如何在R中從Windows將Linux計算集群注冊為並行后端

[英]How to register linux computing cluster as parallel backend from Windows in R

首先,盡管我精通R編程,但是我對* nix環境+並行計算還是相當陌生的,所以我感謝您的支持。 我熟悉R中的'parallel','foreach'和不同的'do_'軟件包,但僅用於在本地計算機上使用多個內核。

我有一個本地Linux群集計算機(在OpenSUSE上運行),可以使用,其中包含多個節點。 這些節點都安裝了R。 通常,如果我只嘗試在其中一個節點上工作,我將使用PuTTY首先將ssh切換到頭節點(使用用戶名+ pwd),然后再切換到(內部?)一個節點。 但是,我想做的是在本地Windows工作站上運行R,然后將作業發送到計算機群集。

是否可以將此節點集群設置為Windows計算機的並行后端? 如果是這樣,最方便的方法是什么?

編輯:

也許我可以將問題縮小一點。 在頭節點上打開R進程並運行類似的命令就足夠了,

library( parallel )
nodes <- c("n01", "n02", "n03") ## the nodes
cl <- makePSOCKcluster( nodes )
setDefaultCluster( cl )

現在,是否可以輕松地將本地R會話與在頭節點上運行的R會話接口? 例如,理想情況下,我想在計算機上以以下形式編寫代碼(偽代碼):

clusterConnection <- connect("<cluster>")
f <- function() { clusterApply( cl, 1:10, sum( rnorm(1E7) ) ) }
results <- evaluate( f, clusterConnection )

因此,“求值”執行一些魔術操作即可將函數“ f”發送到頭節點,然后對其求值,然后將結果返回給本地計算機,並將其存儲在“結果”中。

是否有R函數,程序包或其他方法來處理這種接口?

我找到了一個相當合適的解決方案。 使用Rserve在根節點上設置R服務器,然后通過套接字連接到該服務器。 CRAN上的Rserve庫還提供了許多實用程序功能,用於評估服務器上的某些功能並在本地計算機上接收結果。

暫無
暫無

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

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