[R-sig-Debian] R, OpenBLAS and OMP_NUM_THREADS

Dirk Eddelbuettel edd at debian.org
Wed Aug 3 17:04:28 CEST 2016


On 3 August 2016 at 16:45, Gordon Ball wrote:
| On 02/08/16 03:10, Ei-ji Nakama wrote:
| > Hi,
| > 
| > Create /etc/profile.d/openblas.sh.
| > Write the following during in this file.
| > OPENBLAS_NUM_THREADS = 1
| > export OPENBLAS_NUM_THREADS
| > 
| > OPENBLAS_NUM_THREADS environment variable does not affect the OMP_NUM_THREADS.

Thumbs up to using /etc/profile.d/ -- very nice hook.

| Unfortunately neither this nor anything else I've tried today appears to
| set the variable for sessions started through RStudio server (which may
| or may not be an appropriate issue here).
| 
| It appears that the rstudio server spawns sessions with a new minimal
| environment (rstudio::core::system::launchChildProcess) and no option to
| inject or inherit variables. (Various methods of controlling the session
| environment are documented in the pro/paid version manual [1], but are
| not implemented in the public codebase - enterprise features, presumably).
| 
| Hence approaches like setting the environment in the
| rstudio-server.service systemd unit, or creating a /etc/pam.d/rstudio
| service profile including pam_env.so (to load the setting from
| /etc/environment) don't work. It would probably be possible to work
| round this by creating a small binary wrapper for the rsession binary
| which sets the environment, but it would make a mess of the packaging.
| 
| So I've gone with an `/etc/R/Rprofile.site` containing
| 
| local({
|     if (require("RhpcBLASctl", quietly=TRUE)) blas_set_num_threads(1)
| })
| 
| which does mean people get this library loaded in all their sessions but
| that doesn't seem to cause any particular trouble (yet).

I was just working on something that needed environment variables (for
automating tests to a database backend) and populating

   /etc/R/Renviron.site

worked for me. Otherwise explicit code in Rprofile.site is of course good, as
is conditioning.  I do that too for some use cases.

Dirk

-- 
http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org



More information about the R-SIG-Debian mailing list