dear R experts--- I am experimenting with multicore processing, so far with pretty disappointing results. Here is my simple example:
A <- 100000 randvalues <- abs(rnorm(A)) minfn <- function( x, i ) { log(abs(x))+x^3+i/A+randvalues[i] } ## an arbitrary function ARGV <- commandArgs(trailingOnly=TRUE) if (ARGV[1] == "do-onecore") { library(foreach) discard <- foreach(i = 1:A) %do% uniroot( minfn, c(1e-20,9e20), i ) } else if (ARGV[1] == "do-multicore") { library(doMC) registerDoMC() cat("You have", getDoParWorkers(), "cores\n") discard <- foreach(i = 1:A) %dopar% uniroot( minfn, c(1e-20,9e20), i ) } else if (ARGV[1] == "plain") for (i in 1:A) discard <- uniroot( minfn, c(1e-20,9e20), i ) else cat("sorry, but argument", ARGV[1], "is not plain|do-onecore|do-multicore\n") on my Mac Pro 3,1 (2 quad-cores), R 2.12.0, which reports 8 cores, "plain" takes about 68 seconds (real and user, using the unix timing function). "do-onecore" takes about 300 seconds. "do-multicore" takes about 210 seconds real, (300 seconds user). this seems pretty disappointing. the cores are not used for the most part, either. feedback appreciated. /iaw ---- Ivo Welch (ivo.we...@gmail.com) ______________________________________________ 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.