如何让R利用高内存、高cpu的服务器?

如何让R利用高内存、高cpu的服务器?,r,resources,cloud,amazon-web-services,R,Resources,Cloud,Amazon Web Services,因此,我终于找到了如何让我的R脚本在AmazonEC2云上运行的方法。我一直在使用一个AMI,它有26个ECU、8个内核和69 GB的RAM 然后,我将代码划分为多个脚本,并在R的一个实例中运行每一个脚本。使用这种大小的服务器,我可以轻松地同时运行20-40个脚本,每个脚本运行1000个模拟 我想知道的是,R是否在本地利用所有这些计算能力。我应该安装专门告诉R使用所有这些额外内存/多个CPU的软件包吗?我已经看到了这一点,其中一些(至少从描述来看)似乎很有希望。但是我不知道如何将它合并到我的代码

因此,我终于找到了如何让我的R脚本在AmazonEC2云上运行的方法。我一直在使用一个AMI,它有26个ECU、8个内核和69 GB的RAM

然后,我将代码划分为多个脚本,并在R的一个实例中运行每一个脚本。使用这种大小的服务器,我可以轻松地同时运行20-40个脚本,每个脚本运行1000个模拟

我想知道的是,R是否在本地利用所有这些计算能力。我应该安装专门告诉R使用所有这些额外内存/多个CPU的软件包吗?我已经看到了这一点,其中一些(至少从描述来看)似乎很有希望。但是我不知道如何将它合并到我的代码中。
有人能对此做更多的解释吗?

你可以看看我的《高性能计算与R入门》教程中的例子,其中有几个版本


使用多核的最快方法是(优秀的)包,您不应该有任何特殊的事情来利用那里的大量ram。连接到via,但您当然可以直接使用
mclappy()
函数。

Dirk的评论可以在w.r.t multicore/foreach/doMC上找到

如果你正在做成千上万的模拟,你可能想考虑亚马逊的弹性地图缩减(EMR)服务。当我想在R中扩展我的模拟时,我从巨大的EC2实例和多核包开始(就像你一样!)。虽然进展顺利,但我却欠下了一大笔EC2账单。我并不真的需要所有的公羊,但我正在为此付钱。我的工作会在凌晨3点结束,然后直到早上8点我才进入办公室,所以我付了5个小时的工资,我不需要

然后我发现我可以使用EMR服务启动50个便宜的小型Hadoop实例,运行我的模拟,然后让它们自动关闭!我完全放弃了在EC2上运行模拟人生,现在几乎只使用EMR。这项工作非常有效,我的公司开始测试将更多的周期性模拟活动迁移到EMR的方法

这是我第一次在EC2上使用多核时写的一篇文章。然后,当我发现我可以用Amazon电子病历来做这件事时,我写了一篇文章

编辑:自从这篇文章发表以来,我一直在开发一个软件包,使EMR和R更容易用于并行应用函数。我已经给这个项目命名了


进一步更新:我不推荐Segue,因为有更好、更成熟的产品可以从R访问亚马逊的服务。

感谢Dirk提供的优秀资源。我将用下午的时间阅读你们的报告。干杯谢谢你。我的EC2标签也很高,所以我一定会研究EMR。如果你遇到任何EMR的问题,请务必在StackOverflow中询问后续问题。祝你好运