2014-11-07 1 views
0

С обновлением до Йосемити OSX на моем конце-2012 Mac Mini всех мои сценариев, которые используют Еогеасп и DoMC для параллельных вычислений были подбрасывая следующее сообщение об ошибке:Проблем с использованием случайного леса с Еогеасп и DoMC в Yosemite OSX

The process has forked and you cannot use this CoreFoundation functionality safely. You MUST exec(). 
Break on __THE_PROCESS_HAS_FORKED_AND_YOU_CANNOT_USE_THIS_COREFOUNDATION_FUNCTIONALITY___YOU_MUST_EXEC__() to debug. 

Console output

Выполнение вычислений завершено, но в дополнение к выходу ошибки в консоли у меня осталось 8 открытых узлов зомби. При выполнении нескольких параллельных сценариев это приводит к системе получать залит эти зомби узлами, которые сгорают процессор и оперативную память в фоновом режиме, быстро смолообразования всего процесса:

Residual zombie nodes left in the background after executing script twice.

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

install.packages(c('foreach', 'doMC', 'bigrf')) 
library(bigrf) 
data(Cars93, package="MASS") 
x <- Cars93 
y <- Cars93$Type 
vars <- c(4:22) 
forest <- bigrfc(x, y, ntree=30L, varselect=vars, cachepath=NULL) 

Любые другие пользователи Yosemite, испытывающие это? Кто-нибудь знает, что здесь может быть? Мне абсолютно необходимо это исправить, и я бы предпочел не делать этого, уничтожив мой жесткий диск и переустановив OSX Mavericks.

Cheers,

Аарон

+1

Похоже, вы используете «R Console». Получаете ли вы ошибку при выполнении R из терминала? –

+0

Большой вопрос - в какой-то момент я встретил предупреждение о реализованных вилочных процессах из графического интерфейса. Я попробую запустить с терминала и отчитаться. – Aaron

+0

вот и все, спасибо за помощь, @SteveWeston. учитывая ваш обширный опыт в разработке этого программного обеспечения, есть ли у вас какие-либо мысли о том, почему это может зависеть в графическом интерфейсе, но не в режиме BATCH? – Aaron

ответ

0

Ответил @SteveWeston, выше:

Самый простой способ обойти это, чтобы запустить файл сценария с помощью R CMD ПАРТИИ script.R или Rscript script.R в окне терминала. Например, сохранить следующий пример test_case.R

library(bigrf) 
library(doMC) 
data(Cars93, package="MASS") 
registerDoMC(detectCores()) 
x <- Cars93 
y <- Cars93$Type 
vars <- c(4:22) 
forest <- bigrfc(x, y, ntree=30L, varselect=vars, cachepath=NULL) 
preds <- predict(forest, x) 
print(preds) 

запустить этот файл из любого места вы сохранили его на своем компьютере, изменив для этого диска и запуска Rscript test_case.R. Безупречное исполнение, без зомби-узлов. Интересно, почему проблема возникает в графическом интерфейсе?

Спасибо, Стив!

Приветствия,

Аарон

0

Более легко вы можете пойти в Advanced options и отмените Use multithreading for calculations. Таким образом, вы можете избежать вилки.

Это сработало для меня.