help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: intel mkl


From: Jaroslav Hajek
Subject: Re: intel mkl
Date: Wed, 4 Aug 2010 16:42:00 +0200

On Wed, Aug 4, 2010 at 3:58 PM, javaloye
<address@hidden> wrote:
>
> ALMOST THERE !
> As almost everything is working fine now.
> Actually, even better than fine as it outperform matlab 7.10 !
> Here is the detail of what I have done, hope it helps ...
>
> octave : 3.2.4
> System : Ubuntu 10.04 64
> intel icc+ifort+mkl installed in /opt/intel/Compiler/11.1/072/
>
> I followed this link to satisfy all octave dependencies
> http://wiki.octave.org/wiki.pl?BuildFromSource
> (I did not  put any #include "GL/glu.h" in my case anywhere.)
>
> As mentioned above, you could manually install QRupdate from source
> but you can also install libqrupdate-dev from synaptics.
>
> I did not used icc nor icpc for compilation since it was creating too many
> warnings.

That's bad. I recall that for 3.2.x the warnings were cause by
configure script using -Wextra or some other option which icpc didn't
understand. In Octave 3.3.52+, this is fixed. I recommend you use
3.3.52 if performance is your target. Specifically, there are a couple
of interesting performance improvements to linear algebra as well.

> Anyway, I think that the most important thing was to use ifort and mkl to
> get a fast linear algebra subsystem.
>
> I put therefore the following flags
> export F77=ifort
> export FFLAGS="-xT -O2 -funroll-loops"
> and configured octave as follow
>
> ./configure --prefix=$HOME/myoctave324  --enable-shared --disable-static \
> --with-blas='-L/opt/intel/Compiler/11.1/072/mkl/lib/em64t/
> -I/opt/intel/Compiler/11.1/072/include/ -lmkl_intel_lp64 -lmkl_sequential
> -lmkl_core -lpthread' \
> --with-lapack='-L/opt/intel/Compiler/11.1/072/mkl/lib/em64t/
> -I/opt/intel/Compiler/11.1/072/include/ -lmkl_intel_lp64 -lmkl_sequential
> -lmkl_core -lpthread'
>

Is LP64 the correct arch? I think maybe it is, but I'm not sure. If
you don't use --enable-64, Fortran's default integer must be 32 bits,
as well as Octave's octave_idx_type. In 3.3.52, configure employs a
much better checking procedure for this, which should detect most
problems.

> Some tests : Matrix multiply, and eig of very large sparse singular nasty
> matrices gives identical results either with matlab of with octave.
> The performances are quite identical (octave is a bit faster on multiply).

I think Matlab uses MKL as well, so no big surprise. Octave has a
slightly broader mapping to BLAS routines (and even broader with
3.3.52+). Also, if you're into SVD decompositions, you may experience
big speed-ups in 3.3.52 by optionally using the divide & conquer
drivers.

>
> I tried to make check but I get a panic: Segmentation fault -- stopping
> myself... when testing the IRAM method eigs. I trace the bug to be maybe
> related to qr since test qr gives a bug.
>
> running octave in debug (following this link
> https://www-old.cae.wisc.edu/pipermail/help-octave/2008-August/010451.html)
> gives to me the following message
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x00007ffff4ba1eaa in zdotc_ () from
> /opt/intel/Compiler/11.1/072/mkl/lib/em64t/libmkl_intel_lp64.so
>
>  So, I guess that my configure is still maybe incorrect.
> Any help would be appreciated !
>

Looks like a fundamental problem, but this is not enough to diagnose.
In any case, the problem is most likely yours since I use the same (I
think) MKL version (though with Intel compilers) and don't have
problems.

Regardles



-- 
RNDr. Jaroslav Hajek, PhD
computing expert & GNU Octave developer
Aeronautical Research and Test Institute (VZLU)
Prague, Czech Republic
url: www.highegg.matfyz.cz



reply via email to

[Prev in Thread] Current Thread [Next in Thread]