On 20/06/2015 22:21, Henrik Bengtsson wrote:
QUESTION:
Is it possible to query number of active jobs running after launching
them with parallel::mcparallel()?

For example, if I launch 3 jobs using:

library(parallel)
f <- lapply(1:3, FUN=mcparallel)

then I can inspect them as:

str(f)
List of 3
  $ :List of 2
   ..$ pid: int 142225
   ..$ fd : int [1:2] 8 13
   ..- attr(*, "class")= chr [1:3] "parallelJob" "childProcess" "process"
  $ :List of 2
   ..$ pid: int 142226
   ..$ fd : int [1:2] 10 15
   ..- attr(*, "class")= chr [1:3] "parallelJob" "childProcess" "process"
  $ :List of 2
   ..$ pid: int 142227
   ..$ fd : int [1:2] 12 17
   ..- attr(*, "class")= chr [1:3] "parallelJob" "childProcess" "process"

However, if I launch them without "recording" them, or equivalently if I do:

f <- lapply(1:3, FUN=mcparallel)
rm(list="f")

is there a function/mechanism in R/the parallel package allowing me to
find the currently active/running processes?  ... or at least query
how many they are?  I'd like to use this to prevent spawning of more
than a maximum number of parallel processes.  (Yes, I'm away of
mclapply() and friends, but I'm looking at using more low-level
mcparallel()/mccollect()). I'm trying to decide whether I should
implement my own mechanism for keeping track of "jobs" or not.

Note that 'currently active/running' is a slippery concept and is not what the results above show. But see ?children, which seems to be what you are looking for. It is not exported and there is no more detailed explanation save the source code. Also note that tells you about children and not grandchildren ....

You can find out about child processes (and their children) at OS level, for example via the 'ps' command, but doing so portably is not easy.

--
Brian D. Ripley,                  rip...@stats.ox.ac.uk
Emeritus Professor of Applied Statistics, University of Oxford
1 South Parks Road, Oxford OX1 3TG, UK

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to