繁体   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