Почему MRO иногда "зависает" в параллельных приложениях? - PullRequest
0 голосов
/ 08 февраля 2019

Я пытался оптимизировать пакет Bioconductor для параллельной обработки.При этом я столкнулся с двумя битами кода, которые работают последовательно в последовательном режиме, но при использовании mclapply процессы останавливаются (0% использования ЦП и диска), но никогда не приводят к сбою или ошибкам.

Один - умножениематрицы arma / armadillo и вектора, для которого я пока не могу получить минимальный рабочий представитель.Я включил представительство для другого ниже (принимая собственные значения / векторы матрицы).Интересно, что выполнение кода с doParallel, кажется, работает нормально.

library("parallel")
library("foreach")
library("doParallel")

m <- diag(100)
eigen(m)
lapply(1:10, function(i) eigen(m))
mclapply(1:10, function(i) eigen(m))

cl <- makeCluster(2)
registerDoParallel(cl)
foreach(i = 1:10) %dopar% eigen(m)

Это связано с использованием MRO библиотек BLAS, которые являются многопоточными.

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