Ich habe eine lange Liste von großen Matrizen (oder Rastern), die ich parallel summieren möchte. Die Ausgabe sollte eine Matrix sein. Ich versuchte foreach
mit der .combine='+'
Funktion, die funktioniert, aber es scheint .Combine funktioniert nur auf einen Thread, so dass es keine Beschleunigung gibt. Irgendwelche Vorschläge? Dankparallele Summierung von Matrizen (oder Rastern) in R
matrix.list <- list()
for(i in 1:10000) matrix.list[[i]] <- matrix(1,nrow=100,ncol=100)
library(foreach)
library(doMC)
registerDoMC(cores=2)
matrix.sum <- foreach(i=1:10000,.combine='+') %dopar% matrix.list[[i]]
genau. Ich habe 600.000 Matrizen der Größe 7200x3600 –
sie sind spärlich, aber ich wollte die Dinge nicht komplizieren –
Nicht eine parallele Lösung, aber 'Reduce ('+', matrix.list)' lief rund 18 mal schneller als der obige Code. – jav