Я не уверен, если это ошибка, поэтому я предпочитаю опубликовать ее здесь, прежде чем регистрировать.
После обновления с R 3.3.3 до R 3.4 я получаю следующее сообщение с mclapply:
Ошибка подтверждения в kmp_runtime.cpp (6480): __kmp_thread_pool == __null.
OMP: ошибка № 13: ошибка подтверждения в kmp_runtime.cpp (6480).
OMP: Подсказка: отправьте сообщение об ошибке с этим сообщением, используемыми командами компиляции и запуска и информацией о конфигурации компьютера, включая версии собственного компилятора и операционной системы. Более быстрый ответ будет получен путем включения всех источников программы. Информацию о том, как отправить этот вопрос, смотрите
Обратите внимание, что это поведение не присутствовало в R 3.3.3 на той же машине, и вся партия работала без ошибок. Также обратите внимание, что я попробовал это со всеми возможными значениями для enableJIT (X) с тем же результатом.
Партия (надеюсь) воспроизвести это здесь:
library(data.table)
load(file = "z.RData")
firmnames <- as.list(unique(z[, firm_name]))
f <- function(x, d = z) {
tmp <- d[dealid %in% unique(d[firm_name %in% x, dealid]), .(firm_name, firm_type, dealid, investment_year, investment_yearQ, round_number)][firm_name != x, ]
tmpY <- tmp[, .N, by = .(firm_type, investment_year, round_number)]
tmpQ <- tmp[, .N, by = .(firm_type, investment_yearQ, round_number)]
return(list(
firm_name = x,
by_year = tmpY,
by_quarter = tmpQ,
allroundsY = tmpY[, sum(N), by = .(firm_type, investment_year)],
allroundsQ = tmpQ[, sum(N), by = .(firm_type, investment_yearQ)]))
}
r <- mclapply(firmnames, f, mc.cores = detectCores(), mc.preschedule = FALSE)
Данные для воспроизводимого примера здесь:
https://www.dropbox.com/s/2enoeapu7jgcxwd/z.Rdata?dl=0
SessionInfo ():
R version 3.4.0 (2017-04-21)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS Sierra 10.12.4
Matrix products: default
BLAS: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRblas.0.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRlapack.dylib
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] parallel compiler stats graphics grDevices utils datasets methods base
other attached packages:
[1] data.table_1.10.4 numbers_0.6-6 microbenchmark_1.4-2.1 zoo_1.8-0 doParallel_1.0.10 iterators_1.0.8
[7] foreach_1.4.3 RSclient_0.7-3 stringi_1.1.5 stringr_1.2.0 lubridate_1.6.0 plyr_1.8.4
loaded via a namespace (and not attached):
[1] Rcpp_0.12.10 lattice_0.20-35 codetools_0.2-15 grid_3.4.0 gtable_0.2.0 magrittr_1.5 scales_0.4.1 ggplot2_2.2.1
[9] lazyeval_0.2.0 tools_3.4.0 munsell_0.4.3 colorspace_1.3-2 tibble_1.3.0
Заранее спасибо за помощь / подсказки,
Ян
РЕДАКТИРОВАТЬ: Небольшое редактирование, оказывается, что этот код не может действительно воспроизвести проблему … Однако я оставляю это здесь, следуя совету разработчика data.table, на тот случай, если кто-то еще посчитает это полезным.
Задача ещё не решена.
Других решений пока нет …