Как исправить 'пустую проблему с циклом foreach пакета doParallel' - PullRequest
0 голосов
/ 28 июня 2019

В настоящее время работает над программным обеспечением Monolix (программное обеспечение для оценки параметров математических моделей).В настоящее время я использую функции R, доступные для этого программного обеспечения.Это достигается точно так же, как это возможно с помощью пользовательского интерфейса.

Для запуска функций в R необходимо предоставить файл, соответствующий модели, которую мы хотим протестировать.Итак, я создал 100 файлов в формате mlxtran, которые абсолютно одинаковы для дизайна модели, они различаются только в наборе данных для обработки.

Сначала мне удалось понять, что мои операции над одним файлом mlxtran, это сработало.Затем я сделал это благодаря циклу for, чтобы выполнить анализ 100 файлов в моем списке, и это сработало.Проблема возникает, когда я должен сделать это путем распараллеливания моего кода с помощью функции dopar цикла foreach.


#Version that works
library(lixoftConnectors)
initializeLixoftConnectors(software = "monolix")
library(doParallel)
library(dplyr)

#Put my 100 mlxtran in a list
ldfRec <- dir(pattern = "*.mlxtran")

#Version fonctionnant avec un seul
loadProject(ldfRec[1])
runScenario()
ResultPopParameters<-getEstimatedPopulationParameters()
ResultPopParameters

#Version that does not work

cl <- detectCores() %>% -1 %>% makeCluster
registerDoParallel(cl)

#Put my 100 mlxtran in a list
ldfRec <- dir(pattern = "*.mlxtran")

resultatsForEach<-foreach(z=1:100, .packages=c("lixoftConnectors","dplyr","doParallel")) %dopar% {

  loadProject(ldfRec[z])
  runScenario()
  ResultPopParameters<-getEstimatedPopulationParameters()
  ResultsStandardErrors<-getEstimatedStandardErrors()
}
stopCluster(cl)

Я ожидаю вывода для всех моих файлов.Результаты за один прогон выглядят так:

ka_pop 1.56 V_pop 2.4 ....

Это список со всеми оценками для каждого параметра моей модели.

Длятеперь, с циклом foreach у меня есть список resultForEach только со значением NULL.

Я прошу прощения за грамматические ошибки, Благодарю вас

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...