Hi again, Following my previous message, I've made some progress after finding hints on the list archives that the flag CPPFLAGS="-D__ACCELERATE__" should help direct R to use the Accelerate framework. It does help in this regard, as ./configure now confirms,
External libraries: readline, BLAS(Accelerate), LAPACK(in blas), zlib, bzlib, PCRE, curl Unfortunately, make fails because of a missing lzma.h, even though it exists and lives in /usr/local/include/lzma.h. I have xz installed via brew. Ideally I would like to be able to build R from source on my mac, but that has proved harder than I anticipated. Alternatively, - is there a way to redirect R's Lapack after installation, the same way as for BLAS? ( as in cd /Library/Frameworks/R.framework/Resources/lib ln -sf /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/Versions/Current/libBLAS.dylib libRblas.dylib) - could I somehow silence RcppArmadillo's solve() warning? (this is more of a Rcpp-dev question, I'll ask there if it comes to that) Thanks, baptiste On 5 March 2016 at 18:24, Baptiste Auguie <baptiste.aug...@gmail.com> wrote: > Dear list, > > I have a package using RcppArmadillo for linear algebra; at some point in > the calculation it solves a linear system. I understand the c++ Armadillo > library hands this operation over to Lapack Unfortunately, somewhere in my > toolchain Armadillo has been configured to use R's internal subset > of Lapack, which triggers the following warning every time I call the R > function, > > warning: solve(): refinement and/or equilibration not done due to crippled > LAPACK > > This doesn't sound very good, and is also a real nuisance in the terminal > as I'm calling the function hundreds of times in a loop. I've installed the > latest build from https://r.research.att.com, built and installed the > latest version of RcppArmadillo, but the problem persists. > > I'm not sure if it's relevant to this question, but I've had some success > with the related issue of switching from R's internal BLAS to the vecLib > one, > > cd /Library/Frameworks/R.framework/Resources/lib > ln -sf > /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/Versions/Current/libBLAS.dylib > libRblas.dylib > > giving me a considerable boost in performance. I'm not sure if something > similar can be done for Lapack. > > The next step I've taken was to try and build R myself, with explicit > flags telling R to use an external Lapack from Apple's Accelerate (vecLib?) > framework. I have not had any luck with that, every time some kind of error > appears, and I could not find a recent tutorial with step-by-step > instructions to build R on a Mac. > > I've downloaded the R source, followed by > > ./configure SHELL='/bin/bash' r_arch=x86_64 CC="gcc -arch x86_64 > -std=gnu99" CXX="g++ -arch x86_64" OBJC="gcc -arch x86_64" F77="gfortran > -arch x86_64" FC="gfortran -arch x86_64" --with-system-zlib > --with-blas='-framework vecLib' --with-lapack > > with this summary at the end: > > R is now configured for x86_64-apple-darwin15.3.0 > > Source directory: . > Installation directory: /Library/Frameworks > > C compiler: gcc -arch x86_64 -std=gnu99 > -I/usr/local/include > Fortran 77 compiler: gfortran -arch x86_64 -g -O2 > > C++ compiler: g++ -arch x86_64 -g -O2 > C++ 11 compiler: g++ -arch x86_64 -std=c++11 -g -O2 > Fortran 90/95 compiler: gfortran -arch x86_64 -g -O2 > Obj-C compiler: gcc -arch x86_64 -g -O2 -fobjc-exceptions > > Interfaces supported: X11, aqua, tcltk > External libraries: readline, zlib, bzlib, lzma, PCRE, curl > Additional capabilities: NLS, ICU > Options enabled: framework, shared BLAS, R profiling > > Capabilities skipped: PNG, JPEG, TIFF, cairo > Options not enabled: memory profiling > > Recommended packages: yes > > make > > gives me this error: > > byte-compiling package 'grDevices' > Warning in solve.default(rgb) : > unable to load shared object > '/Users/baptiste/Downloads/R-rc/modules/x86_64/lapack.so': > dlopen(/Users/baptiste/Downloads/R-rc/modules/x86_64/lapack.so, 6): > Symbol not found: __gfortran_compare_string > > I've tried quite a few variations, but I'm shooting in the dark since I > don't understand the issue. If I've missed a standard tutorial, please let > me know. > > Best regards, > > baptiste > > PS: my sessionInfo() using CRAN's R-devel > R Under development (unstable) (2016-03-02 r70268) > Platform: x86_64-apple-darwin13.4.0 (64-bit) > Running under: OS X 10.11.3 (El Capitan) > locale: > [1] en_NZ.UTF-8/en_NZ.UTF-8/en_NZ.UTF-8/C/en_NZ.UTF-8/en_NZ.UTF-8 > > gfortran -v > gfortran: warning: couldn’t understand kern.osversion ‘15.3.0 > Using built-in specs. > COLLECT_GCC=gfortran > > COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-apple-darwin13.0.0/4.8.2/lto-wrapper > Target: x86_64-apple-darwin13.0.0 > Configured with: /Builds/gcc-4.8/gcc-4.8.2/configure CC=clang CXX=clang++ > --enable-languages=fortran > Thread model: posix > gcc version 4.8.2 (GCC) > > > > [[alternative HTML version deleted]] _______________________________________________ R-SIG-Mac mailing list R-SIG-Mac@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-mac