Параллельная и многоядерная обработка в R [закрыто]

Это к крайности в R 'Я думаю, что это возможности, но здесь идет ... Я

я делаю тяжелую обработку в R, в которой яМы написали функцию, которая выполняет всю работу за один вызов. Однако я'Я хотел бы использовать более одного ядра.

Мы посмотрели на пакет Parallel, который выглядит устаревшим. Я'В идеале я хотел бы вызвать функцию как новый поток.

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

ура

Ответы на вопрос(1)

Решение Вопроса

multicore пакет устарел: нетparallel, Посмотрите на документацию дляmclapply функция: этоСамый простой способ параллельно выполнять функции вparallel пакет. Это'очень похож наlapply но с несколькими новыми необязательными аргументами:

myfun <- function(i) { Sys.sleep(1); i }
mclapply(1:8, myfun, mc.cores=4)

Обратите внимание, чтоmclapply использует процессы, а не потоки, и неПоддержка параллельного выполнения в Windows. Для Windows вы должны взглянуть наparLapplyкоторый также находится вparallel, Это также похоже наlapply, но требует кластерный объект в качестве первого аргумента. Вот'Это тот же пример, но он работает практически на любой платформе:


cl <- makePSOCKcluster(4)
myfun <- function(i) { Sys.sleep(1); i }
parLapply(cl, 1:8, myfun)
stopCluster(cl)
 Steve Weston12 июн. 2013 г., 00:10
@GregSnow Я наконец понял ваш комментарий и, надеюсь, улучшил свой ответ. Благодарю.
 Greg Snow11 июн. 2013 г., 23:55
Но функции какparLapply в параллельном пакете работает параллельно на Windows, это просто требует немного больше настроек, чем.mclapply

Ваш ответ на вопрос