[R-SIG-Mac] Parallel errors with default BLAS (vecLib) in R 4.5.2 for arm64

Myles Lewis my|e@@|ew|@ @end|ng |rom qmu|@@c@uk
Thu Jan 15 12:27:00 CET 2026


Hi Simon,

I’ve tested this on MacBook Pro 14-inch 2023 M3 max, running Sequoia 15.7.3.
I’ve also tested this on iMac 27-inch 2019 intel 8-core i9 running Sonoma 14.8.3. Both have 64 GB RAM.

It’s linked to Veclib. When using R 4.5.2 on the Intel Mac, it works fine because R’s standard BLAS is the default. But on either machine if I change the BLAS symlink to vecLib then the error occurs. That’s true even with old versions of R version 4.x.x. If I change the symlink back to the default R BLAS, the error goes away. It occurs in both R via normal Mac GUI as well as in Rstudio.

Here’s my sessionInfo on the ARM machine:

> sessionInfo()
R version 4.5.2 (2025-10-31)
Platform: aarch64-apple-darwin20
Running under: macOS Sequoia 15.7.3

Matrix products: default
BLAS:   /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/4.5-arm64/Resources/lib/libRlapack.dylib;  LAPACK version 3.12.1

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

time zone: Europe/London
tzcode source: internal

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

loaded via a namespace (and not attached):
[1] compiler_4.5.2

It’s dependent on the size of the matrix. With smaller M (e.g. M=400), the error goes away. I’m assuming that crossprod() does not invoke multiple threads with small M.

Thanks,
Myles

From: Simon Urbanek <simon.urbanek using R-project.org>
Date: Wednesday, 14 January 2026 at 22:41
To: Myles Lewis <myles.lewis using qmul.ac.uk>
Cc: r-sig-mac using r-project.org <r-sig-mac using r-project.org>
Subject: Re: [R-SIG-Mac] Parallel errors with default BLAS (vecLib) in R 4.5.2 for arm64

[You don't often get email from simon.urbanek using r-project.org. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ]

Myles,

can you please, provide more details such as exact versions of your macOS and well as details on the hardware you are using? I cannot reproduce the problem - it works perfectly fine for me on M3 running macOS 26.0.1 so it would be good to know what the conditions for failure are.

Thanks,
Simon


> On 15 Jan 2026, at 06:05, Myles Lewis via R-SIG-Mac <r-sig-mac using r-project.org> wrote:
>
> I wanted to report an issue with R 4.5.2 for arm64, which is caused by the change in the default BLAS from R�s standard BLAS library to using Apple Accelerate vecLib BLAS library by default. In 4.5.1 and earlier, R for macOS ships with the standard R BLAS. To change to vecLib, users had to deliberately invoke this using a terminal command to change a symlink:
> https://cran.r-project.org/bin/macosx/RMacOSX-FAQ.html#Which-BLAS-is-used-and-how-can-it-be-changed_003f<https://cran.r-project.org/bin/macosx/RMacOSX-FAQ.html#Which-BLAS-is-used-and-how-can-it-be-changed_003f>
>
> However, R 4.5.2 for arm64 now defaults to vecLib. For intel macOS, 4.5.2 stays with the standard R BLAS. VecLib BLAS has a problem with parallelisation using mclapply() which now gives a warning and returns NULL if mc.cores >= 2 and vecLib is invoked e.g. by the use of crossprod(). Here�s a short reprex:
>
> system("readlink /Library/Frameworks/R.framework/Resources/lib/libRblas.dylib")
> # R 4.5.2 arm64: libRblas.vecLib.dylib
> # R 4.5.1 arm64: libRblas.0.dylib
>
> N <- 200
> M <- 4000
> X <- matrix(rnorm(N*M),N)
>
> library(parallel)
>
> # ok
> res <- mclapply(1:4, function(i) {crossprod(X + i)}, mc.cores = 1)
>
> # ok in R 4.5.1
> # not ok in R 4.5.2 arm64 (but works if M is smaller)
> res <- mclapply(1:4, function(i) {crossprod(X + i)}, mc.cores = 2)
> # gives warning and `res` contains NULL
>
> The same error occurs on Intel & arm Macs with any version of R if the BLAS is switched to VecLib by symlink.
>
> My question is whether R for arm64 should go back to standard R BLAS by default. Otherwise, users may find that functions which invoke the BLAS e.g. lm() may crash unexpectedly and return NULL when parallelised using mclapply (a fairly common situation in lots of packages).
>
> Thanks,
> Myles Lewis
>
>
> [[alternative HTML version deleted]]
>
> _______________________________________________
> R-SIG-Mac mailing list
> R-SIG-Mac using r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-mac<https://stat.ethz.ch/mailman/listinfo/r-sig-mac>


	[[alternative HTML version deleted]]



More information about the R-SIG-Mac mailing list