![](/img/trans.png)
[英]How to do parallel computing inside a cluster with the R future package?
[英]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.