Was ich versuche zu tun: Öffnen Sie einen Stapel von Bildern mit EBImage, verarbeiten Sie sie und speichern Sie das verarbeitete Bild in einer neuen Datei. Ich versuche das parallel mit dem Paket "doParallel" und "foreach".Öffnen von Bilddateien in R parallel
Das Problem: Jedes Mal, wenn ich mehr als ein Prozessorkern für die Aufgabe verwenden, R gibt den Fehler:
Error in unserialize(node$con) : error reading from connection
Calls: <Anonymous> ... doTryCatch -> recvData -> recvData.SOCKnode -> unserialize
Execution halted
Ich weiß nicht, wie mehr Informationen zu diesem Fehler zu erhalten. Wenn ich versuche, dasselbe Skript zu verwenden, aber nur einen Prozessorkern, bekomme ich kein Problem.
Beispielskript:
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))
}
Der Code funktioniert, wenn nCores = 1, es funktioniert nicht, wenn nCores etwas zwischen 1 und die maximale Anzahl der Kerne zur Verfügung.
Das System, das ich diese ausgeführt werden soll ist eine virtuelle Maschine mit 36 Kernen CentOS 7.
Die einzelnen Arbeiter eindeutige Dateien basierend ID auf dem Dateibild sollte zugreifen läuft, so kann ich nicht, dass es ein Problem ist mit Dateisperrung oder gleichzeitigem Lesen, außer Linux hat Probleme beim gleichzeitigen Lesen und Schreiben in dasselbe Verzeichnis.
Ich würde ehrlich glücklich sein für eine Problemumgehung sowie eine Lösung.
Vielen Dank!
Meine Sitzung Info: R Version 3.3.1 (2016.06.21) Plattform: x86_64-Apfel-darwin13.4.0 (64-Bit) unter fliessendem: 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