FWIW there is some machinery in the glmmTMB package for querying, setting, etc. the number of OpenMP threads.

https://github.com/glmmTMB/glmmTMB/search?q=omp

On 10/9/21 11:45 AM, Vladimir Dergachev wrote:


On Sat, 9 Oct 2021, Jeff Newmiller wrote:

Keep in mind that by embedding this decision into your package you may be consuming a resource (cores) that may be more efficiently allocated by an application-level partitioning. of available resources. I for one am not a fan of this kind of thinking, and it makes system requirements for your package more complex even if you allow me to disable it.

That's right, and this is why I was asking about any present or future plans for R support - if there was a way to find out how many threads R should use, I would use that.

So far, it looks like the most portable way is to use OpenMP and let the user set an appropriate environment variable if they want to restrict thread usage. I could use the same OpenMP variable for pthreads as well.

This is pretty common on clusters anyway, with openmp environment variables set automatically to the number of cores user requested.

I would probably also add a function to the package to report the number of threads being used. Not sure whether it would be a good idea to report this during package loading (and not sure what is the right way to display a message during package load either).

best

Vladimir Dergachev

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

--
Dr. Benjamin Bolker
Professor, Mathematics & Statistics and Biology, McMaster University
Director, School of Computational Science and Engineering
Graduate chair, Mathematics & Statistics

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

Reply via email to