Dear All, Suppose I have a program as below: Outside is a loop for simulation (with random generated data), inside there are several sapply()'s (10~100) over the data and something else, but these sapply's have to be sequential. And each sapply do not involve very intensive calculation (a few seconds only). So the outside loop takes minutes to finish one iteration. I guess the better way is not to parallel sapply but the outer loop. But I have no idea how to modify it. I have a simple code here. Only two sapply's involved for simplicity. The logical in the sapply is not important. Thank you for your attention and suggestion.
library(parallel) library(MASS) result.seq=c() Maxi <- 100 for (i in 1:Maxi) { ## initialization, not of interest Sigmahalf <- matrix(sample(1:10000,size = 10000,replace =T ), 100) Sigma <- t(Sigmahalf)%*%Sigmahalf x <- mvrnorm(n=1000, rep(0, 10), Sigma) xlist <- list() for (j in 1:1000) { xlist[[j]] <- list(X = matrix( x [j, ],5)) } ## end of initialization dd1 <- sapply(xlist,function(s) {min(abs((eigen(s$X))$values))}) ## sumdd1=sum(dd1) for (j in 1:1000) { xlist[[j]]$dd1 <- dd1[j]/sumdd1 } ## Assume dd2 and dd1 can not be combined in one sapply() dd2 <- sapply(xlist, function(s){min(abs((eigen(s$X))$values))+s$dd1}) result.seq[i] <- sum(dd1*dd2) } [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list 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.