2011-06-21 36 views
0

我试图使用多核包来运行并行R作业。每个工作都是用不同参数执行相同的script.R将参数传递给并行R作业

一般的想法是定义一个函数,该函数接受参数,然后调用source("script.R")。问题是我无法将参数传递给script.R。由于我并行运行,因此无法在全局范围内定义参数。

欢迎任何帮助。

+2

如果多核支持在每个核心的全局环境中设置变量的某种方式,则可以使用该方法。我个人使用降雪进行并行处理,并且对它很满意(并且很容易支持这些东西) –

+0

我是R并行处理的新手,多核是我正在使用的第一个库。我会看看降雪。谢谢。 – denim

+0

+1为降雪包。我写了一篇博客文章,使用降雪来演示我想要做的事情:http://bit.ly/xaWAx6 –

回答

0

由于运行的并行R实例可能在不同的节点/计算机上,因此使用外部数据库来存储参数可能是一个不错的选择。

我会使用redis作为极其快速和完全accessible in R,并行运行它的兄弟:doredis

所以你可以有一个redis服务器(甚至每个主机上的一个复制的从属数据库),它可以被提取参数。你甚至可以即时从R以外的参数更新参数给所有工人,并且可以很容易地用doredis为任务添加新的工人。