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

From: Elliott Forney <>
Date: Wed, 30 May 2012 16:32:32 -0600

My apologies! I was looking at the current documentation and was unable to find anything related to this topic in the mailing list after Milan's question but you are correct. I moved to the latest MKL and from R-2.14.2 to R-2.15.0 this morning and it appears to build fine now.

A few months ago I had to link against the GNU OpenMP library (libgomp) instead of the intel OpenMP library (libiomp5) to avoid the "double complex BLAS" error and I thought it would be worthwhile to share this insight.

I do still think that


should be changed to


Looks like a lot can change in just a few months :) Sorry again, next time I will be sure to try the latest version.

  Elliott Forney

On Wed, May 30, 2012 at 2:02 AM, Prof Brian Ripley <> wrote:
> Hmm, you replied to a message from February and there has been an R release
> since with a revised manual.  That does say (even more clearly) that it
> refers to version 10.0 of MKL and there have been changes.  And since than
> there had been a change (notified by an Intel engineer) about which version
> of OpenMP to use.
> In short, please always check the current documentation before posting (as
> the posting guide required of you).
> On 29/05/2012 21:10, Elliott Forney wrote:
>> 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).
>> Thanks!
>>   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.)
> And that is well-attested, including in the R manuals.
>>> Regards
>>> 1:
>>> 2:
>>> 3:
>>> 4:
>>> ______________________________________________
>>> mailing list
>> ______________________________________________
>> mailing list
> --
> Brian D. Ripley,        
> Professor of Applied Statistics,
> University of Oxford,             Tel:  +44 1865 272861 (self)
> 1 South Parks Road,                     +44 1865 272866 (PA)
> Oxford OX1 3TG, UK                Fax:  +44 1865 272595 mailing list Received on Wed 30 May 2012 - 22:37:11 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 Thu 31 May 2012 - 06:12:09 GMT.

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

list of date sections of archive