From plummer at iarc.fr  Wed Nov  5 18:59:34 2008
From: plummer at iarc.fr (Martyn Plummer)
Date: Wed, 05 Nov 2008 18:59:34 +0100
Subject: [Rd] [R] Building with MKL on Ubuntu
In-Reply-To: <2bc7a5a50811050829o2904bddbw8be864d087096640@mail.gmail.com>
References: <2bc7a5a50811041000u698ccbdm252e2209735192f1@mail.gmail.com>
	<alpine.LFD.2.00.0811041824550.10858@gannet.stats.ox.ac.uk>
	<1225827242.4910a3aace7b9@webmail.iarc.fr>
	<2bc7a5a50811050829o2904bddbw8be864d087096640@mail.gmail.com>
Message-ID: <1225907974.10672.9.camel@seurat.iarc.fr>

It looks like the em64t version of MKL fails the test for the accuracy
of zdotu ("checking whether double complex BLAS can be used") and is
therefore dropped in favour of R's built-in BLAS.  I have just tested
this on Fedora and get the same result.

The 32-bit MKL does work for me.

Martyn

On Wed, 2008-11-05 at 16:29 +0000, Anand Patil wrote:
> On Tue, Nov 4, 2008 at 7:34 PM, <plummer at iarc.fr> wrote:
> 
> > I can see a couple of problems:
> >
> > 1) No "-lpthread" in --with-blas
> > 2) No "-L" prefix in the library path in --with-lapack
> >
> > In addition, I don't think you need to add -lmkl to --with-lapack,
> > although that is probably harmless.
> >
> > Martyn
> >
> > Quoting Prof Brian Ripley <ripley at stats.ox.ac.uk>:
> >
> > > Look in config.log to see what's wrong.  (E.g. is
> > > /opt/intel/mkl/10.0.2.018/lib/em64t in the ld.so cache?)
> > >
> > > And note the warnings in the manual about using --with-lapack: it is most
> > > definitely not recommended.
> > >
> > > R-devel would be a better place to ask questions about this.
> > >
> >
> 
> Thanks Brian and Martyn,
> I've tried it again with two sets of configure options:
> 
> ./configure --with-blas='-L/opt/intel/mkl/10.0.2.018/lib/em64t -lmkl -lguide
> -lpthread' --with-lapack='-L/opt/intel/mkl/10.0.2.018/lib/em64t -lmkl_lapack'
> --enable-R-shlib
> 
> ./configure --with-blas='-L/opt/intel/mkl/10.0.2.018/lib/em64t -lmkl -lguide
> -lpthread' --enable-R-shlib
> 
> In both cases, the result is the same: R builds and uses its own BLAS. I
> didn't find anything that looked like evidence that /opt/intel/mkl/
> 10.0.2.018/lib/em64t was getting into the ld.so cache, ie I didn't find
> 'ld.so' and 'opt/intel...' close together anywhere. Summaries of the BLAS-
> or MKL-related bits in config.log follow, with the first set of options:
> 
> configure:36563: checking for dgemm_ in -L/opt/intel/mkl/
> 10.0.2.018/lib/em64t -lmkl -lguide -lpthread
> configure:36594: gcc -std=gnu99 -o conftest -g -O2 -fpic
>  -I/usr/local/include  -L/usr/local/lib64 conftest.c -L/opt/intel/mkl/
> 10.0.2.018/lib/em64t -lmkl -lguide -lpthread  -lgfortran -lm -ldl -lm  >&5
> conftest.c: In function 'main':
> conftest.c:187: warning: implicit declaration of function 'dgemm_'
> configure:36600: $? = 0
> configure:36616: result: yes
> configure:37408: checking whether double complex BLAS can be used
> configure:37481: result: no
> ...
> BLAS_LIBS0=''
> BLAS_LIBS='-L$(R_HOME)/lib$(R_ARCH) -lRblas'
> BLAS_SHLIB_FALSE='#'
> BLAS_SHLIB_TRUE=''
> ...
> JAVA_LD_LIBRARY_PATH='$(JAVA_HOME)/lib/amd64/server:$(JAVA_HOME)/lib/amd64:$(JAVA_HOME)/../lib/amd64:/usr/local/lib64::/usr/lib64:/lib64:/usr/local/lib64:/usr/lib:/usr/local/lib:/lib:/opt/intel/fce/10.1.018/lib:/opt/intel/ipp/
> 5.3.4.080/em64t/sharedlib:/opt/intel/cce/10.1.018/lib:/opt/intel/mkl/10.0.2.018/lib/em64t:/usr/java/packages/lib/amd64:/lib:/usr/lib
> '
> JAVA_LIBS0='-L$(JAVA_HOME)/lib/amd64/server -L$(JAVA_HOME)/lib/amd64
> -L$(JAVA_HOME)/../lib/amd64 -L/usr/local/lib64 -L -L/usr/lib64 -L/lib64
> -L/usr/local/lib64 -L/usr/lib -L/usr/local/lib -L/lib
> -L/opt/intel/fce/10.1.018/lib
> -L/opt/intel/ipp/5.3.4.080/em64t/sharedlib-L/opt/intel/cce/10.1.018/lib
> -L/opt/intel/mkl/
> 10.0.2.018/lib/em64t -L/usr/java/packages/lib/amd64 -L/lib -L/usr/lib -ljvm'
> LAPACK_LDFLAGS=''
> LAPACK_LIBS='-L$(R_HOME)/lib$(R_ARCH) -lRlapack'
> 
> 
> and with the second set:
> 
> 
> configure:36563: checking for dgemm_ in -L/opt/intel/mkl/
> 10.0.2.018/lib/em64t -lmkl -lguide -lpthread
> configure:36594: gcc -std=gnu99 -o conftest -g -O2 -fpic
>  -I/usr/local/include  -L/usr/local/lib64 conftest.c -L/opt/intel/mkl/
> 10.0.2.018/lib/em64t -lmkl -lguide -lpthread  -lgfortran -lm -ldl -lm  >&5
> conftest.c: In function 'main':
> conftest.c:187: warning: implicit declaration of function 'dgemm_'
> configure:36600: $? = 0
> configure:36616: result: yes
> configure:37408: checking whether double complex BLAS can be used
> configure:37481: result: no
> ...
> BLAS_LIBS0=''
> BLAS_LIBS='-L$(R_HOME)/lib$(R_ARCH) -lRblas'
> BLAS_SHLIB_FALSE='#'
> BLAS_SHLIB_TRUE=''
> ...
> JAVA_LD_LIBRARY_PATH='$(JAVA_HOME)/lib/amd64/server:$(JAVA_HOME)/lib/amd64:$(JAVA_HOME)/../lib/amd64:/usr/local/lib64::/usr/lib64:/lib64:/usr/local/lib64:/usr/lib:/usr/local/lib:/lib:/opt/intel/fce/10.1.018/lib:/opt/intel/ipp/
> 5.3.4.080/em64t/sharedlib:/opt/intel/cce/10.1.018/lib:/opt/intel/mkl/10.0.2.018/lib/em64t:/usr/java/packages/lib/amd64:/lib:/usr/lib
> '
> JAVA_LIBS0='-L$(JAVA_HOME)/lib/amd64/server -L$(JAVA_HOME)/lib/amd64
> -L$(JAVA_HOME)/../lib/amd64 -L/usr/local/lib64 -L -L/usr/lib64 -L/lib64
> -L/usr/local/lib64 -L/usr/lib -L/usr/local/lib -L/lib
> -L/opt/intel/fce/10.1.018/lib
> -L/opt/intel/ipp/5.3.4.080/em64t/sharedlib-L/opt/intel/cce/10.1.018/lib
> -L/opt/intel/mkl/
> 10.0.2.018/lib/em64t -L/usr/java/packages/lib/amd64 -L/lib -L/usr/lib -ljvm'
> LAPACK_LDFLAGS=''
> LAPACK_LIBS='-L$(R_HOME)/lib$(R_ARCH) -lRlapack'
> 
> 
> Do either of these give us clues as to what's wrong?
> 
> Thanks,
> Anand
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel

-----------------------------------------------------------------------
This message and its attachments are strictly confidenti...{{dropped:8}}



[Rd] [R] Building with MKL on Ubuntu
Martyn Plummer