[R] R parallel / foreach - aggregation of results

Jon Skoien jon.skoien at jrc.ec.europa.eu
Fri Jul 31 15:20:42 CEST 2015


Martin,

I think the main problem is that you are trying to assign your results 
to the result matrix inside the foreach loop. Parallel functions in R 
are generally not good at updating parts of matrices from the different 
workers in this way. Instead, using e.g. foreach, each loop of the 
foreach-call has to return a vector which can be cbind-ed to a result 
matrix. Something like:

L2distance = foreach(j=1:n1, .combine = cbind)  %dopar% {
     res = rep(NA, 10)
     for (k in j:n1) res[k] = k*data[j]
     res
}
L2distance

I am not sure what the np-library is, but you should consider putting it 
in a clusterExport-call after creating the cluster.

Best wishes,
Jon


On 7/31/2015 2:39 PM, Martin Spindler wrote:
> Dear all,
>
> when I am running the code attached below, it seems that no results are returned, only the predefined NAs. What mistake do I make?
> Any comments and help is highly appreciated.
>
> Thanks and best,
>
> Martin
>
>
> Simpar3 <- function(n1) {
>    L2distance <- matrix(NA, ncol=n1, nrow=n1)
>    data <- rnorm(n1)
>    diag(L2distance)=0
>    cl <- makeCluster(4)
>    registerDoParallel(cl)
>    foreach(j=1:n1)  %dopar% {
>      library(np)
>      datj <- data[j]
>      for(k in j:n1) {
>        L2distance[j,k] <- k*datj
>      }
>    }
>    stopCluster(cl)
>    return(L2distance)
> }
>
> Res <- Simpar3(100)
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

-- 
Jon Olav Skøien
Joint Research Centre - European Commission
Institute for Environment and Sustainability (IES)
Climate Risk Management Unit

Via Fermi 2749, TP 100-01,  I-21027 Ispra (VA), ITALY

jon.skoien at jrc.ec.europa.eu
Tel:  +39 0332 789205

Disclaimer: Views expressed in this email are those of the individual 
and do not necessarily represent official views of the European Commission.



More information about the R-help mailing list