Подтвердить что ты не робот

Как я могу заставить R воспользоваться сервером с высокой памятью и высоким процессором?

Итак, я наконец понял, как заставить мои R-скрипты работать в облаке Amazon EC2. Я использую AMI с 26 ECU, 8 ядрами и 69 гигабайтами оперативной памяти.

Затем я делю мой код на несколько сценариев и запускаю каждый из них в экземпляре R. С сервером такого размера я могу легко запускать 20-40 скриптов одновременно, каждый из которых запускает несколько 1000 симуляций.

То, что я хотел бы знать, - это то, что R использует все эти вычислительные мощности изначально. Должен ли я устанавливать пакеты, которые специально говорят R, использовать все эти дополнительные память/несколько процессоров? Я видел эту страницу и некоторые packages ( по крайней мере, из описания) кажутся многообещающими. Но я не могу понять, как включить это в мой код. Может ли кто-нибудь пролить свет на это?

4b9b3361

Ответ 1

Вы можете ознакомиться с примерами в разделе "Введение в высокопроизводительные вычисления" с учебниками R, из которых несколько версий находятся на этой странице.

Самый быстрый способ использования нескольких ядер - это (отличный) multicore пакет, у вас не должно быть ничего особенного, чтобы сделать Преимущество кустов барана у вас там. multicore связывается в foreach через doMC, но вы можете, конечно, просто использовать функцию mclapply().

Ответ 2

Комментарии Dirk указаны на w.r.t multicore/foreach/doMC.

Если вы делаете тысячи симуляций, вы можете захотеть рассмотреть сервис Amazon Elastic Map Reduce (EMR). Когда я хотел масштабировать свои симуляции в R, я начал с огромных экземпляров EC2 и многоядерного пакета (как и вы!). Все прошло хорошо, но я столкнулся с черным счетом EC2. Мне не нужна была вся эта оперативная память, но я платил за нее. И мои рабочие места закончатся в 3 часа ночи, после чего я не доберусь до офиса до 8 утра, поэтому я заплатил за 5 часов, которые мне не нужны.

Затем я обнаружил, что могу использовать сервис EMR для запуска 50 дешевых небольших экземпляров Hadoop, запускать мои симуляции, а затем автоматически отключать их! Я полностью отказался от запуска своих симов на EC2 и теперь использую EMR почти исключительно. Это работало так хорошо, что моя фирма начинает проверять способы переноса большей части нашей периодической симуляции на EMR.

Здесь сообщение в блоге Я написал, когда впервые начал использовать multicore на EC2. Затем, когда я обнаружил, что могу сделать это с помощью Amazon EMR, я написал сообщение .

РЕДАКТИРОВАТЬ:, поскольку этот пост я работал над пакетом, упрощающим использование EMR с R для параллельных приложений. Я назвал проект Segue и его в Google Code.

Дальнейшее обновление: Я с тех пор устарел от Segue, потому что есть намного лучшие и более зрелые предложения для доступа к сервисам Amazon от R.