[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