[R] pdf() under multicore (was Comments disappearing from local functions (R 2.14.0))
Prof Brian Ripley
ripley at stats.ox.ac.uk
Thu Nov 24 22:17:45 CET 2011
On Fri, 25 Nov 2011, Patrick Connolly wrote:
[... about a completely different topic]
> With the one using multicore, I get a strange error that didn't occur
> with R-2.13.1. A function which runs on 7 cores produces a swag of
> PDF files and then returns a list of information. New to the 2.14.0
> is an error like this:
>
> "Error in dev.off() : internal error in PDF_endpage\n"
>
>> From what I can work out, that is a C message and tricky to trace.
Easy to trace; you look for it in the code! It indicates that you used
PDF compression (new to 2.14.0) and that the page-stream file got
corrupted. So simply use compress=FALSE to get the previous
behaviour.
However, mixing graphics devices with multicore is probably asking for
trouble. If your fork with an open graphics device you certainly are
since the parent and child will share file handles.
But even if each child opens a separate pdf() device and closes it
before it returns, there still are many pitfalls as the parent and
child share a session temporary directory and all assume they have
exclusive access to it. My guess is that two pdf() devices in
different processes are using the same temporary file, or the same
FILE stream associated with a temporary file. And only onefile=FALSE
or compress=TRUE use such temporary files.
> However, if I use a postscript device instead of PDF, it works fine.
> It's a simple matter to convert a postscript file to pdf, so that's
> easy to deal with. It's impossible to make a toy example of the
> problem which doesn't appear when run on a single core. Maybe if I
> knew exactly where the problem arises I could make a toy example but
> it's rather a lot of code I'm dealing with. The fact that the two
> problems I'm encountering did not occur with earlier versions makes me
> less suspicious of my own code.
You could at least have outlined what you are doing.
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-help
mailing list