система распределенного планирования для R-скриптов - PullRequest
5 голосов
/ 29 декабря 2011

Я хотел бы запланировать и распределить на нескольких машинах - Windows или Ubuntu - (одна задача только на одной машине) выполнение сценариев R (с использованием, например, RServe).

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

1 / Существует ли пакет R илибиблиотека, которая может быть использована для этого?

2 / Одна библиотека, которая, по-видимому, достаточно широко используется, это mapReduce с Apache Hadoop.У меня нет опыта работы с этой структурой.Какую установку / плагин / настройку вы бы посоветовали для моей цели?

Редактировать: Вот более подробная информация о моей настройке:
У меня действительно есть офис, полный машин (небольших серверов илирабочие станции), которые иногда также используются для других целей.Я хочу использовать вычислительную мощность всех этих машин и распространять на них свои R-скрипты.
Мне также нужен планировщик, например.инструмент для планирования сценариев в определенное время или регулярно.Я использую и Windows, и Ubuntu, но хорошего решения для одной из систем на данный момент было бы достаточно.Наконец, мне не нужен сервер, чтобы получить результат скриптов.Сценарии выполняют такие функции, как доступ к базе данных, сохранение файлов и т. Д., Но ничего не возвращают.Я просто хотел бы вернуть ошибки / предупреждения, если они есть.

Ответы [ 2 ]

2 голосов
/ 29 декабря 2011

Если вы хотите распределить задания для параллельного выполнения на машинах, к которым у вас есть физический доступ, я HIGHLY рекомендую серверную часть doRedis для foreach.Вы можете прочитать виньетка PDF , чтобы получить более подробную информацию.Суть в следующем:

Зачем писать пакет doRedis?В конце концов, пакет foreach уже имеет много параллельных внутренних пакетов, включая doMC, doSNOW и doMPI.Пакет doRedis позволяет создавать динамические пулы работников.Новые рабочие могут быть добавлены в любое время, даже в середине выполнения вычислений.Эта функция актуальна, например, для современных сред облачных вычислений.Пользователи могут принять экономичное решение о «включении» большего количества вычислительных ресурсов в любое время, чтобы ускорить выполнение вычислений. Точно так же современные системы распределения ресурсов кластера doRedis Package могут динамически планировать R работников, когда ресурсы кластера становятся доступными

Hadoop работает лучше всего, если машины, на которых работает Hadoop, выделены для кластера, а не заимствованы. Кроме того, существуют значительные издержки на настройку Hadoop, которые могут стоить усилий, если вам требуется карта / сокращение алгоритма и распределенное хранилище, предоставляемые Hadoop.

Так в чем же заключается ваша конфигурация? У вас есть офис, полный машин, на которые вы хотите распределить задания R? У вас есть выделенный кластер? Это будет EC2 или другая «облачная» система??

Дьявол кроется в деталях, так что вы можете получить более точные ответы, если детали явны.

Если вы хотите, чтобы работники выполняли задания и чтобы результаты заданий были перенастроены обратно водин главный узел, вы будете мюch лучше использовать специальное решение R, а не систему, такую ​​как TakTuk или dsh, которые являются более общими инструментами распараллеливания.

1 голос
/ 29 декабря 2011

Посмотрите на TakTuk и dsh в качестве отправных точек.Возможно, вы могли бы запустить свой собственный механизм с помощью pssh или clusterssh , хотя это может потребовать больше усилий.

...