是否可以在R中启动多个EC2实例?

是否可以在R中启动多个EC2实例?,r,amazon-ec2,R,Amazon Ec2,这是一个初学者的问题。假设我有以下代码: library("multicore") library("iterators") library("foreach") library("doMC") registerDoMC(16) foreach(i in 1:M) %dopar% { ##do stuff } 该代码将在16个内核上运行,如果它们可用的话。现在,如果我理解正确的话,使用AmazonEC2,在一个实例上,我得到的依赖于该实例的内核只有几个。因此,如果我想在16核上运行模

这是一个初学者的问题。假设我有以下代码:

library("multicore")
library("iterators")
library("foreach")
library("doMC")

registerDoMC(16)

foreach(i in 1:M) %dopar% {
   ##do stuff
}
该代码将在16个内核上运行,如果它们可用的话。现在,如果我理解正确的话,使用AmazonEC2,在一个实例上,我得到的依赖于该实例的内核只有几个。因此,如果我想在16核上运行模拟,我需要使用几个实例,就我所知,这意味着启动新的R进程。但是我需要在R之外编写额外的代码来收集结果


所以我的问题是,是否有一个R包,它允许从R中启动EC2实例,自动在这些实例之间分配负载,并在最初启动的R中收集结果?

准确地说,EC2上的最大实例类型目前是8核,所以任何人,甚至R的用户,需要多个实例才能在8个以上的内核上同时运行

如果您想使用更多实例,那么您有两个用于部署R的选项:“常规”R调用或MapReduce调用。在前一种情况下,您必须设置代码以启动实例、分发任务(例如,
foreach
中的独立迭代)、返回结果等。这是可行的,但您可能不会喜欢。在这种情况下,可以使用
rmr
RHipe
之类的工具来管理MapReduce网格,也可以使用
snow
和许多其他HPC工具来创建简单的网格。使用
snow
可以更容易地保持代码的完整性,但您必须学会如何将这些内容绑定在一起


在后一种情况下,您可以构建亚马逊提供的基础设施,如Elastic MapReduce(EMR)和使之更简单的软件包,如JD的
segue
。我推荐
segue
作为一个很好的起点,就像其他人所做的那样,因为它有一个更温和的学习曲线。开发者也是如此,所以当它崩溃时,你可以很容易地让他难堪。

是一个startcheck out@JD Long的segue软件包,我99%确定它的目的是:我92%确定这就是我写segue的目的:)有没有可以在Windows上运行的解决方案?(塞格不能。)