Я экспериментировал с интерфейсом R для базы данных redis , а также параллельный бэкэнд doRedis для foreach . У меня есть пара вопросов, которые помогут мне лучше применить этот инструмент:
- doMC, doSMP, doSnow и т. Д., Похоже, работают, вызывая рабочие процессы на одном компьютере, передавая им элемент из списка и функцию применить, а затем собрать результаты. В случае doMC рабочие разделяют память. Однако меня немного смущает, как база данных может обеспечивать такую же функциональность.
- Когда я добавляю дополнительный подчиненный компьютер в очередь заданий doRedis ( как в этом видео ), возникает вся база данных doredis отправляется на подчиненный компьютер? Или каждое ведомое устройство - это просто данные, которые ему нужны в определенный момент (т.е. один элемент списка и функция, которую нужно применить).
- Как я могу явно передать дополнительные данные и функции в очередь заданий doRedis, которые должны будут выполняться каждым ведомым устройством для выполнения своих вычислений?
- При использовании doRedis и foreach есть ли какие-либо дополнительные «ошибки», которые могут не применяться к другим параллельные бэкенды?
Я знаю, что у меня много вопросов, но я сталкивался с ситуациями, когда мое ограниченное понимание того, как работает параллельная обработка, мешало мне реализовать ее. Например, недавно я попытался распараллелить вычисление в большой базе данных и поймал себя на том, что передаю всю базу данных каждому узлу в моем кластере, что полностью уничтожило все преимущества, которые я получил от распараллеливания.
Спасибо!
задан TMS 12 September 2014 в 14:11
поделиться