Hi, I was be half asleep in the heat ... 2016-08-04 0:04 GMT+09:00 Dirk Eddelbuettel <e...@debian.org>: > > 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).
In this case, hook of the / etc / R / Rprofile.site would be best local({ if(require("RhpcBLASctl", quietly=TRUE)){ if(Sys.getenv("OPENBLAS_NUM_THREADS")=="" & Sys.getenv("OMP_NUM_THREADS")=="") blas_set_num_threads(1) } }) $ OMP_NUM_THREADS=4 R -q -e 'library(RhpcBLASctl);blas_get_num_procs()' > library(RhpcBLASctl);blas_get_num_procs() [1] 4 maybe confusion would be minimal. > 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. I often forget to have set it...orz > Dirk > > -- > http://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org -- Best Regards, -- Eiji NAKAMA <nakama (a) ki.rim.or.jp> "\u4e2d\u9593\u6804\u6cbb" <nakama (a) ki.rim.or.jp> _______________________________________________ R-SIG-Debian mailing list R-SIG-Debian@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-debian