Что я пытаюсь сделать: Откройте стек изображений с помощью EBImage, обработайте их и сохраните обработанное изображение в новом файле. Я пытаюсь сделать это параллельно, используя пакет «doParallel» и «foreach».Открытие файлов изображений в R параллельно
Проблема: Каждый раз, когда я использую более одного ядра процессора для выполнения этой задачи, R возвращает ошибку:
Error in unserialize(node$con) : error reading from connection
Calls: <Anonymous> ... doTryCatch -> recvData -> recvData.SOCKnode -> unserialize
Execution halted
Я не знаю, как получить больше информации об этой ошибке. Если я попытаюсь использовать один и тот же скрипт, но только с одним ядром процессора, я не получу никаких проблем.
Пример сценария:
library(EBImage)
library(foreach)
library(doParallel)
nCores = 1
registerDoParallel(makeCluster(nCores))
img_stack_ids = c("A", "B", "C", "D")
foreach(i = 1:384, .packages = c("EBImage")) %dopar% {
imgs = tryCatch(readImage(sprintf("/INPUT_IMGS/%s_%s, i, img_stack_ids)),
error = function(e) array(0, dim = c(0,0,0)))
img_processed = processingFunction(img_list)
writeImage(img_processed, sprintf("/OUTPUT_IMGS/%s", i))
}
Код работает при nCores = 1, это не когда nCores что-нибудь между 1 и максимальное количество доступных ядер.
Система, которую я хочу, чтобы запустить на это виртуальная машина с 36 ядрами под управлением CentOS 7.
Отдельные работники должны получать доступ к уникальным файлам на основе файлов ID, так что я не могу изображения, что это проблема с блокировкой файлов или одновременным чтением, если только у Linux нет проблем с одновременным чтением и записью в тот же каталог.
Я искренне буду рад за обходное решение, а также за решение.
Спасибо!
Моей сессия информация: R версия 3.3.1 (2016-06-21) Платформа: x86_64-яблочно-darwin13.4.0 (64-разрядная версия) Запуск под: OS X 10.11.6 (El Capitan)
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 stats graphics grDevices utils datasets methods
base
other attached packages:
[1] doParallel_1.0.10 iterators_1.0.8 foreach_1.4.3
ZProjection_0.99.0 EBImage_4.16.0
loaded via a namespace (and not attached):
[1] locfit_1.5-9.1 lattice_0.20-34 codetools_0.2-15
png_0.1-7 fftwtools_0.9-7 tiff_0.1-5
grid_3.3.1 tools_3.3.1 jpeg_0.1-8
abind_1.4-5
[11] rsconnect_0.5 BiocGenerics_0.20.0