On Wed, Aug 6, 2014 at 6:01 AM, Tom Kraljevic <t...@0xdata.com> wrote: > > Hi, > > > (Using R 3.1.1 on Ubuntu 12.04.4 LTS) > > > What is the recommended way for R to fork a (non-R) process that is not CPU > limited? > Currently I am using R's system2() call, and this is inheriting the > environment of the R process. > > > I notice that (at least on Linux) when I am poking around /proc that the R > process itself is setting up cpu limitations for itself (max 1 core). > > > Using strace, I see the following: > > (strace output) > out.20612:sched_setaffinity(0, 128, {100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0}) = 0 > > > And proc shows: > > (cat /proc/nnn/status) > Cpus_allowed: 00000001 > Cpus_allowed_list: 0 > > > See that the Cpus_allowed bitmask is a single core. Normally it's fff...f.
When I run R I see: Cpus_allowed: ff Cpus_allowed_list: 0-7 It's possible (likely?) that the culprit here isn't R but rather some other library that R is loading. Are you using OpenBLAS? By default OpenBLAS will set an obnoxious cpu mask, unless you override this using some obscure build system settings. (There might be a runtime option for disabling it too, I don't remember. Note also that this is just one of several obnoxious things OpenBLAS does unless you override a bunch of obscure build system defaults -- building OpenBLAS correctly is highly non-trivial.) -n -- Nathaniel J. Smith Postdoctoral researcher - Informatics - University of Edinburgh http://vorpus.org ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel