Re: [Rd] Out of date instructions to build R using MKL

From: Elliott Forney <>
Date: Tue, 29 May 2012 14:10:54 -0600

Yes, these instructions are no longer valid as there has been some reorganization of the mkl libraries. The path /opt/intel/mkl/ is now /opt/intel/mkl/lib/intel64. Also, the only libraries that need to be included are:

-lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core

The trick to getting rid of the "double complex BLAS" error is to use only the gnu compatible libraries (i.e. use mkl_gnu_thread instead of iomp5). I believe the intel-only libraries use a different convention to pass complex numbers between libraries built with fortran? Thankfully this check detects the error instead of crashing at run time.

I used the following to build R-2.14.1 with MKL:

export LD_LIBRARY_PATH=/opt/intel/mkl/lib/intel64 ./configure --prefix=/opt/R-2.14.1 --enable-threads=posix

--with-lapack --with-blas="-I/opt/intel/mkl/include
-L/opt/intel/mkl/lib/intel64 -lmkl_gf_lp64
-lmkl_gnu_thread -lmkl_core -fopenmp -lpthread -lm"

Although a highly tuned BLAS may not help much for many applications, I have seen several orders of magnitude performance improvement in some of my work that uses matrix operations heavily and others in my lab have experienced the same. Having R linked against MKL has been HUGELY important for me personally.

A custom tuned ATLAS works well too but I find it frustrating that it needs to be re-tuned for each architecture I use (I tend to distribute jobs in a heterogeneous environment).

  Elliott Forney

On Fri, Feb 10, 2012 at 8:15 AM, Milan Bouchet-Valat <> wrote:
> Hi!
> I've been playing with MKL for a few days and I noticed the instructions
> in the R Installation Administration manual [1] no longer apply. It
> seems that since version 10.0 (the one used by the manual),
> has been renamed/split (although the official
> explanations seem to imply this was already the case in 10.0 [2]).
> As a consequence, the instructions for dynamic linking no longer work
> with the last version (2011-sp1). This is also the case of what is
> explained on several sites like [3] or [4]. The manual's instructions to
> link statically to MKL still work fine, though.
> I'm merely signaling this fact to more clued people, since I've not been
> able to get R to dynamically link to MKL. I'm always getting this notice
> during ./configure:
>> checking whether double complex BLAS can be used... no
> Anyways, one of the problems is also that it's no longer possible to
> make and symlinks to the Intel libs, as they
> are split into several files.
> If nobody knows how or cares about to fix this ATM, a simple warning
> that the instructions are outdated would already improve the situation,
> as it took me some time to understand things had changed and I wasn't
> just being silly. ;-)
> (That said, I'm not convinced using an external BLAS/LAPACK is really
> interesting for standard desktops. Performances gains compared to
> default packages are incredible in benchmarks, but for real use cases
> multi-threading often makes things slower - at least for me, using gnm.
> I guess this is mostly interesting for very larges matrices, and not for
> many repeated small operations.)
> Regards
> 1:
> 2:
> 3:
> 4:
> ______________________________________________
> mailing list
> mailing list Received on Tue 29 May 2012 - 20:20:30 GMT

This quarter's messages: by month, or sorted: [ by date ] [ by thread ] [ by subject ] [ by author ]

All messages

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Wed 30 May 2012 - 18:22:00 GMT.

Mailing list information is available at Please read the posting guide before posting to the list.

list of date sections of archive