Как работает doRedis?

Я экспериментировал с интерфейсом R для базы данных redis , а также параллельный бэкэнд doRedis для foreach . У меня есть пара вопросов, которые помогут мне лучше применить этот инструмент:

  1. doMC, doSMP, doSnow и т. Д., Похоже, работают, вызывая рабочие процессы на одном компьютере, передавая им элемент из списка и функцию применить, а затем собрать результаты. В случае doMC рабочие разделяют память. Однако меня немного смущает, как база данных может обеспечивать такую ​​же функциональность.
  2. Когда я добавляю дополнительный подчиненный компьютер в очередь заданий doRedis ( как в этом видео ), возникает вся база данных doredis отправляется на подчиненный компьютер? Или каждое ведомое устройство - это просто данные, которые ему нужны в определенный момент (т.е. один элемент списка и функция, которую нужно применить).
  3. Как я могу явно передать дополнительные данные и функции в очередь заданий doRedis, которые должны будут выполняться каждым ведомым устройством для выполнения своих вычислений?
  4. При использовании doRedis и foreach есть ли какие-либо дополнительные «ошибки», которые могут не применяться к другим параллельные бэкенды?

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

Спасибо!

15
задан TMS 12 September 2014 в 14:11
поделиться