[R-pkg-devel] Advice for addressing CRAN rejection
Dirk Eddelbuettel
edd @end|ng |rom deb|@n@org
Wed May 14 17:33:04 CEST 2025
On 14 May 2025 at 15:18, smallepsilon wrote:
| Ben,
|
| No need to apologize. I hope the following example helps clarify what I mean. Suppose that modify_matrix(mat, other_args) is a function that, among other things, applies eigen() to mat. For good reasons, other_args has no default value. It is sometimes convenient, though, to supply the user with default values. Therefore, there is another function, convenient_modify_matrix():
|
| convenient_modify_matrix(mat) <- function(mat) modify_matrix(mat, other_args = default).
|
| To help verify that the code is correct, I want to check the result from identical() below:
|
| set.seed(20250514)
| A <- modify_matrix(mat, other_args = default)
| set.seed(20250514)
| B <- convenient_modify_matrix(mat)
| identical(A, B)
|
| In an ideal world, the result would be TRUE. The results can differ, though, because of multithreading (synonymous with parallel computation, yes?) used by the code underlying eigen(). As I understand it, this occurs when calling LAPACK/BLAS routines on some systems (e.g., MKL). Can that multithreading be turned off? Searching online shows that there is a lot of interest in turning it on; not so much in turning it off.
Section 'A.3.1.3 Intel MKL' of the R Installation and Administration manual
covers that for the MKL case (and general OpenMP cases)
The default number of threads will be chosen by the OpenMP software, but
can be controlled by setting ‘OMP_NUM_THREADS’ or ‘MKL_NUM_THREADS’, and
in recent versions seems to default to a sensible value for sole use of
the machine.
The entire section makes for good reading, it mixes 'how to install MKL' with
'how to use MKL' and touches upon the parellism issue you have here.
Dirk
--
dirk.eddelbuettel.com | @eddelbuettel | edd using debian.org
More information about the R-package-devel
mailing list