[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/10.0.1.014/include -I/usr/include 
> -I/usr/local/include"
> LIBnn=lib64
> BLAS_LIBS="-L/opt/intel/mkl/10.0.1.014/lib/em64t -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
option:

--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
sh-3.00$

power02(43)% more ldpaths
...
${R_LD_LIBRARY_PATH=${R_HOME}/lib:/s/gcc-4.2.1/lib64:
/.../intel/mkl/10.0.011/lib/em64t:/usr/X11R6/lib64:
/.../tcl-8.4.2/i386_rh72/lib:/.../XFree86-4.2.1/i386_rh72/lib}

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

Hope that helps (maybe more than my other post)
MJR



More information about the R-devel mailing list