[Rd] Problem building R with Intel MKL v10 BLAS

M Redmond redmond at stat.wisc.edu
Mon Feb 4 23:34:00 CET 2008

Michael Braun <braunm <at> MIT.EDU> writes:

> NO
> Hi.  I'm not sure if this is an R-help or R-devel problem, so I'm 
> starting here in the hope that someone can help (and willing to go to 
> the other list if it's more appropriate).  I think I am following all of 
> the instructions in the various manuals, but clearly I am missing something.
> I have an Intel EM64T Dell with 2 dual-core Xeon processors running Red 
> Hat EL5.  I would like to build R 2.6.1 with lots of debugging and 
> profiling options, and link it to the processor-specific Intel MKL blas. 
> The problem is that after I compile R, and do R CMD config BLAS_LIBS, 
> the response is
> -L/usr/local/lib64/R/lib -lRblas.
> This tells me that R is not linked to the Intel BLAS at all.
> My config.site file for R is:
> #! /bin/sh
> R_PAPERSIZE=letter
> CFLAGS="-g -O2 -p -pg"
> CPPFLAGS="-I/opt/intel/mkl/ -I/usr/include 
> -I/usr/local/include"
> LIBnn=lib64
> BLAS_LIBS="-L/opt/intel/mkl/ -Wl,--start-group 
> -lmkl_gf_lp64.so -lmkl_gnu_thread.so -lmkl_core.so -l -l -l -Wl, 
> --end-group -lguide -lpthread -lm"
> I have set the CONFIG_SITE environment variable to the location of the 
> config.site.file.
> I am doing everything as superuser.
> The command I am using for configure is
> ./configure --disable-R-profiling --with-blas=no
> following the instructions in the R-admin file regarding enabling 
> C-level profiling and linking to the external BLAS libraries referenced 
> in the config.site file.
> The BLAS_LIBS files are different than in the R-admin manual because of 
> changes in the Intel MKL for version 10.  These libraries, in this 
> order, were taken from the Intel MKL for Linux User's Guide, chapter 5.
> So, still no luck linking to the optimized BLAS.  I'd appreciate any 
> suggestions.
> Thanks,
> Michael
I now recall a similar problem with my install of MKL V10. Here is the info:

I got the 10.X, layered library version of MKL 10.X working on R-2.6.1a. I 
set the full path information for the R configuration blas and lapack

--with-blas="-L/.../intel/mkl/10.0.011/lib/em64t -lRblas -lmkl_sequential
-lmkl_lapack -lmkl_core -lpthread"
--with-lapack="-L/.../intel/mkl/10.0.011/lib/em64t -lRlapack -lmkl_sequential
-lmkl_lapack -lmkl_core -lpthread"

In this case, libRblas.so and libRlapack.so are both linked to 
libmkl_gf_lp64.so in the em64t directory. There must be some internal error
in the R configuration and make processing, because it would not pick up the
primary path specification for the mkl libraries location. Instead, I was 
able to define:

*******critical step to get around a possible R bug*******
sh-3.00$ export LD_RUN_PATH=/.../intel/mkl/10.0.011/lib/em64t

After that, I was able to perform the R configure with no errors. Then the
make also worked with no errors. The BLAS_LIBS and LAPACK_LIBS variables
were properly defined, and the path to the MKL libraries was properly
defined in ldpaths:

sh-3.00$ /.../R-2.6.1a/bin/R CMD config BLAS_LIBS
-L/.../intel/mkl/10.0.011/lib/em64t -lRblas -lmkl_sequential -lmkl_lapack
-lmkl_core -lpthread
sh-3.00$ /.../R-2.6.1a/bin/R CMD config LAPACK_LIBS
-L/.../R-2.6.1a/intel/mkl/10.0.011/lib/em64t -lRlapack -lmkl_sequential
-lmkl_lapack -lmkl_core -lpthread

power02(43)% more ldpaths

(... are the various local paths to the objects of interest)

Hope that helps (maybe more than my other post)

More information about the R-devel mailing list