#r #job-scheduling #queuing #workload
#r #планирование заданий #постановка в очередь #рабочая нагрузка
Вопрос:
Я потратил некоторое время на поиск в Google пакета для организации очередей / балансировки нагрузки для R.
Чего я пытаюсь достичь:
- выполнение нескольких независимых друг от друга функций R с удаленных интерфейсов
- использование двухъядерных серверов в качестве серверной части R
Зная, что:
- каждая функция обычно обрабатывается за 10-30 секунд
- в среднем каждые 5 минут (но это может происходить одновременно) набор из 8-15 функций, подлежащих выполнению, отправляется на серверную часть (в очереди на обработку: первый вход — первый выход). В среднем 5 минут, одновременно может быть отправлено несколько наборов
- экземпляр 2×2 R уже был бы запущен с загруженными необходимыми пакетами, они всегда одни и те же, поэтому нет необходимости постоянно их перезагружать
- вводимый объем передаваемых данных очень мал: не более 50 КБ
Здесь нет темы распараллеливания кода (snow, snowfall foreach, condor и другие традиционные кластерные решения)
Знаете ли вы хороший пакет / инструмент, разработанный для R, который мог бы помочь?
Большое спасибо!
Комментарии:
1. Я не знаю ни о чем существующем. В качестве отправной точки я бы посмотрел на что-то вроде Redis пакета doRedis. Resque — популярный менеджер очередей ruby, построенный на Redis ( github.com/defunkt/resque ).
2. Привет, Ноа, спасибо за твой ответ. Насколько я понял, redis — это база данных, доступ к которой может иметь другой клиент, кроме R, но в чем преимущество по сравнению с MySQL с непараллельными вычислениями?
Ответ №1:
Это звучит как разумный контекст для использования RApache
, который может создавать экземпляры нескольких экземпляров R и необходимых пакетов.