Можно ли запустить несколько экземпляров EC2 в R? - PullRequest
8 голосов
/ 09 ноября 2011

Это больше вопрос для начинающих.Скажем, у меня есть следующий код:

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

registerDoMC(16)

foreach(i in 1:M) %dopar% {
   ##do stuff
}

Этот код будет работать на 16 ядрах, если они доступны.Теперь, если я правильно понимаю, используя Amazon EC2, я получаю в зависимости от экземпляра только несколько ядер.Поэтому, если я хочу запускать симуляции на 16 ядрах, мне нужно использовать несколько экземпляров, что означает, насколько я понимаю, запуск новых процессов R.Но тогда мне нужно написать дополнительный код за пределами R, чтобы собрать результаты.

Итак, мой вопрос: есть ли пакет R, который позволяет запускать экземпляры EC2 из R, автоматически распределяет нагрузку между этими экземплярами и собирает результаты в начальном запущенном R?

1 Ответ

1 голос
/ 14 ноября 2011

Если быть точным, максимальный тип экземпляра в EC2 в настоящее время составляет 8 ядер, поэтому любому, даже пользователям R, потребуется несколько экземпляров для одновременной работы более чем на 8 ядрах.

Если вы хотите использовать больше экземпляров, у вас есть два варианта развертывания R: «обычные» вызовы R или вызовы MapReduce. В первом случае вам нужно будет настроить код для запуска экземпляров, распределения задач (например, независимых итераций в foreach), возврата результатов и т. Д. Это выполнимо, но вам вряд ли это понравится. В этом случае вы можете использовать что-то вроде rmr или RHipe для управления сеткой MapReduce, или вы можете использовать snow и многие другие инструменты HPC для создания простой сетки. Использование snow может помочь сохранить ваш код без изменений, но вам нужно научиться связывать эти вещи вместе.

В последнем случае вы можете использовать инфраструктуру, предоставляемую Amazon, такую ​​как Elastic MapReduce (EMR), и пакеты, которые делают это проще, например, JD segue. Я бы порекомендовал segue в качестве хорошей отправной точки, как это сделали другие, поскольку у нее более мягкая кривая обучения. Разработчик также находится на SO, так что вы можете легко смущать запрашивать его, когда он ломается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...