dust_openmp_support: Information about OpenMP support

View source: R/openmp.R

dust_openmp_supportR Documentation

Information about OpenMP support

Description

Return information about OpenMP support for this system. For individual models look at the ⁠$has_openmp()⁠ method.

Usage

dust_openmp_support(check_compile = FALSE)

Arguments

check_compile

Logical, indicating if we should check if we can compile an openmp program - this is slow the first time.

Value

A list with information about the openmp support on your system.

  • The first few elements come from the openmp library directly: num_proc, max_threads, thread_limit; these correspond to a call to the function ⁠omp_get_<name>()⁠ in C and openmp_version which is the value of the ⁠_OPENMP⁠ macro.

  • A logical has_openmp which is TRUE if it looks like runtime OpenMP support is available

  • The next elements tell you about different sources that might control the number of threads allowed to run: mc.cores (from the R option with the same name), OMP_THREAD_LIMIT, OMP_NUM_THREADS, MC_CORES (from environment variables), limit_r (limit computed against R-related control variables), limit_openmp (limit computed against OpenMP-related variables) and limit the smaller of limit_r and limit_openmp

See Also

dust_openmp_threads() for setting a polite number of threads.

Examples

# System wide support
dust::dust_openmp_support()

# Support compiled into a generator
walk <- dust::dust_example("walk")
walk$public_methods$has_openmp()

# Support from an instance of that model
model <- walk$new(list(sd = 1), 0, 1)
model$has_openmp()

mrc-ide/dust documentation built on Oct. 6, 2023, 8:26 a.m.