Ahh .. I see. Thanks for the pointer. -steve
On Tue, May 1, 2012 at 2:26 PM, Simon Urbanek <[email protected]> wrote: > Steve, > > you can't use certain graphics devices/backends in forked processes (see > multicore docs). What is known to work is the Cairo package. > > Cheers, > Simon > > > > On May 1, 2012, at 12:30 PM, Steve Lianoglou <[email protected]> > wrote: > >> Hi, >> >> I can't figure this out -- I have to (slightly different) OSX boxes >> running the same version of R that I grabbed from r.research.att.com a >> little while ago: >> >> R version 2.15.0 Patched (2012-04-18 r59079) >> Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit) >> >> Simply calling png() w/in a parallel loop always crashed the >> subprocesses on one machine. This code, for example: >> >> library(parallel) >> mclapply(1:10, function(i) { >> png(paste("~/tmp/p", i, "png", sep=".")) >> plot(1:10) >> dev.off() >> }, mc.cores=8) >> >> The error (from each subprocess) is pasted below, however swapping out >> the png() call to pdf() works on both. >> >> The machine that png() fails on is a ~ 2008 2x4-core mac pro. The one >> that doesn't have a problem is a late 2010 core2duo macbook pro 13" >> >> Both are running OSX.6.8 >> >> Anybody else have this problem? >> >> -steve >> >> Error from one process: >> >> *** caught segfault *** >> address 0x108, cause 'memory not mapped' >> >> Traceback: >> 1: png(paste("~/tmp/p", i, "png", sep = ".")) >> 2: FUN(7L[[1L]], ...) >> 3: lapply(X = S, FUN = FUN, ...) >> 4: doTryCatch(return(expr), name, parentenv, handler) >> 5: tryCatchOne(expr, names, parentenv, handlers[[1L]]) >> 6: tryCatchList(expr, classes, parentenv, handlers) >> 7: tryCatch(expr, error = function(e) { call <- conditionCall(e) >> if (!is.null(call)) { if (identical(call[[1L]], >> quote(doTryCatch))) call <- sys.call(-4L) dcall <- >> deparse(call)[1L] prefix <- paste("Error in", dcall, ": ") >> LO >> NG <- 75L msg <- conditionMessage(e) sm <- strsplit(msg, >> "\n")[[1L]] w <- 14L + nchar(dcall, type = "w") + nchar(sm[1L], >> type = "w") if (is.na(w)) w <- 14L + nchar(dcall, >> type = "b") + nchar(sm[1L], type = "b") >> if (w > LONG) prefix <- paste0(prefix, "\n ") } >> else prefix <- "Error : " msg <- paste0(prefix, >> conditionMessage(e), "\n") .Internal(seterrmessage(msg[1L])) if >> (!silent && identical(getOption("show.error.messages"), TRUE)) >> { ca >> t(msg, file = stderr()) .Internal(printDeferredWarnings()) } >> invisible(structure(msg, class = "try-error", condition = e))}) >> 8: try(lapply(X = S, FUN = FUN, ...), silent = TRUE) >> 9: sendMaster(try(lapply(X = S, FUN = FUN, ...), silent = TRUE)) >> 10: FUN(1:8[[7L]], ...) >> 11: lapply(seq_len(cores), inner.do) >> 12: mclapply(1:10, function(i) { png(paste("~/tmp/p", i, "png", sep >> = ".")) plot(1:10) dev.off()}, mc.cores = 8) >> >> -- >> Steve Lianoglou >> Graduate Student: Computational Systems Biology >> | Memorial Sloan-Kettering Cancer Center >> | Weill Medical College of Cornell University >> Contact Info: http://cbio.mskcc.org/~lianos/contact >> >> _______________________________________________ >> R-SIG-Mac mailing list >> [email protected] >> https://stat.ethz.ch/mailman/listinfo/r-sig-mac >> >> > -- Steve Lianoglou Graduate Student: Computational Systems Biology | Memorial Sloan-Kettering Cancer Center | Weill Medical College of Cornell University Contact Info: http://cbio.mskcc.org/~lianos/contact _______________________________________________ R-SIG-Mac mailing list [email protected] https://stat.ethz.ch/mailman/listinfo/r-sig-mac
