Douglas: Thank you for your response. I apologize for not being more clear in my post. I know how to link *to* a BLAS, just as you described. The problem is that under R 4.0.0, it is not clear what to link *from*.
This is my $R_HOME/lib directory for R-4 (removing dSYM directories for space) ~ $ ls -l $R_HOME/lib total 19120 -rwxrwxr-x@ 1 root admin 4070896 Apr 24 05:23 libR.dylib -rwxrwxr-x 1 root admin 201472 Apr 24 05:23 libRblas.dylib -rwxrwxr-x 1 root admin 2181472 Apr 24 05:23 libRlapack.dylib -rw-rw-r-- 1 root admin 160624 Apr 24 05:23 libgcc_s.1.dylib -rwxrwxr-x 1 root admin 2851008 Apr 24 05:23 libgfortran.5.dylib -rwxrwxr-x 1 root admin 309648 Apr 24 05:23 libquadmath.0.dylib You will see that libRblas.dylib is an actual library for the default R BLAS, not a symlink. So if I were to do as you suggest, I would overwrite the default reference BLAS with the symlink. I would not be able to go back to the default BLAS if I ever needed to. Under R-3.6.3 and earlier, $R_HOME/lib looks like this (after linking to the Intel BLAS, and again edited for space) ~ $ ls -l /Library/Frameworks/R.framework/Versions/3.6/Resources/lib total 22168 -rwxrwxr-x 1 root admin 3720000 Mar 5 20:06 libR.dylib -rwxrwxr-x 1 root admin 210512 Mar 5 20:06 libRblas.0.dylib lrwxr-xr-x 1 root admin 73 Mar 10 13:05 libRblas.dylib -> $MKLROOT/lib/libmkl_rt.dylib -rwxrwxr-x 1 root admin 2225088 Mar 5 20:06 libRlapack.dylib -rwxrwxr-x 1 root admin 874416 Mar 5 20:06 libc++.1.dylib -rwxrwxr-x 1 root admin 237904 Mar 5 20:06 libc++abi.1.dylib -rwxrwxr-x 1 root admin 317696 Mar 5 20:06 libgcc_s.1.dylib -rwxrwxr-x 1 root admin 1648416 Mar 5 20:06 libgfortran.3.dylib -rwxrwxr-x 1 root admin 610928 Mar 5 20:06 libomp.dylib -rwxrwxr-x 1 root admin 304848 Mar 5 20:06 libquadmath.0.dylib -rwxrwxr-x 1 root admin 1084288 Mar 5 20:06 libreadline.5.2.dylib lrwxr-xr-x 1 root admin 21 Mar 10 13:02 libreadline.dylib -> libreadline.5.2.dylib -rwxrwxr-x 1 root admin 86320 Mar 5 20:06 libunwind.1.dylib Note that the reference BLAS file was libRblas.0.dylib, not libRblas.dylib. By default, libRblas.dylib was a link to libRblas.0.dylib, but I changed that link to the BLAS I want (here I use Intel because it works with parallel R code, but I can do the same kind of thing with vecLib). This is the *expected* behavior, and is consistent with the R for Mac FAQ. Now, it is correct that the FAQ is not up-to-date anyway, since libRblas.vecLib.dylib is not included (and I do not think it has been for a while). Your workaround is exactly what I did under R-3, but does not seem to be possible in R-4 without some manual renaming. Before I do that renaming (and possibly break something), I’d like some confirmation that this is an oversight, and not by design. Thanks, Michael On Apr 30, 2020, at 4:22 AM, Douglas Yu <doug...@mac.com<mailto:doug...@mac.com>> wrote: libBLAS.dylib is indeed the one to link i did the following on macOS 10.14.6: # R default BLAS test d <- 5e3 system.time({ x <- matrix(rnorm(d^2),d,d); tcrossprod(x) }) # user system elapsed # 186.718 1.483 189.839 system.time({ x <- matrix(rnorm(d^2),d,d); solve(x) }) # user system elapsed # 273.504 1.909 277.557 # to use vecLib cd /Library/Frameworks/R.framework/Resources/lib ln -sf /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/Versions/Current/libBLAS.dylib libRblas.dylib # Restart R # vecLib test d <- 5e3 system.time({ x <- matrix(rnorm(d^2),d,d); tcrossprod(x) }) # user system elapsed # 11.030 0.266 3.876 system.time({ x <- matrix(rnorm(d^2),d,d); solve(x) }) # user system elapsed # 23.432 0.621 6.830 -- Prof. Douglas W. Yu School of Biological Sciences, University of East Anglia, Norwich, Norfolk NR4 7TJ UK, mob +44-7510-308-272 Kunming Institute of Zoology, 21 Qingsong Lu, Kunming, Yunnan 650201 China 中国云南昆明市盘龙区茨坝青松路21号, ofc +86-871-519 9178, mob +86 183 138 29970 people.uea.ac.uk/en/persons/douglas-yu<https://people.uea.ac.uk/en/persons/douglas-yu>, eastanglia.academia.edu/DouglasYu/Papers<http://eastanglia.academia.edu/DouglasYu/Papers> for pdfs On 29 Apr 2020, at 18:11, Braun, Michael <bra...@mail.smu.edu<mailto:bra...@mail.smu.edu>> wrote: Under R 3.6.3 and earlier, I would link R to an alternative BLAS. Following R for Mac FAQ, Sec. 10.5, I would redirect the symbolic link $R_HOME/lib/libRblas.dylib to point to whichever BLAS I wanted to use, (either vecLib or Intel MKL) instead of the reference BLAS at libRblas.0.dylib. With the R 4.0.0 precompiled binaries from CRAN, under $R_HOME/lib, libRblas.dylib is the reference BLAS itself, and there is no libRblas.0.dylib file. Is this by design? Is there an officially recommended alternative? Thanks, MB -------------------------- Michael Braun Associate Professor of Marketing, and Corrigan Research Professor Cox School of Business Southern Methodist University Dallas, TX 75275 braunm _at_ smu.edu<http://smu.edu/><http://smu.edu<http://smu.edu/>> [[alternative HTML version deleted]] _______________________________________________ R-SIG-Mac mailing list R-SIG-Mac@r-project.org<mailto:R-SIG-Mac@r-project.org> https://stat.ethz.ch/mailman/listinfo/r-sig-mac [[alternative HTML version deleted]] _______________________________________________ R-SIG-Mac mailing list R-SIG-Mac@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-mac