Le vendredi 19 septembre 2014 à 21:03 +0200, Milan Bouchet-Valat a
écrit :
> Le vendredi 19 septembre 2014 à 12:25 +0200, Milan Bouchet-Valat a
> écrit :
> > Le jeudi 18 septembre 2014 à 22:35 +0200, Milan Bouchet-Valat a écrit :
> > > Le jeudi 18 septembre 2014 à 15:12 -0400, Andreas Noack a écrit :
> > > > You are not using a fast BLAS, but the slow reference BLAS which
> > > > unfortunately is the default on Linux. An option is to build Julia
> > > > from source. Usually it is just to download the source and write make.
> > > > Then you'll have Julia compiled with OpenBLAS which is much faster and
> > > > comparable in speed to Intel MKL which MATLAB uses.
> > > My Fedora RPM package uses OpenBLAS, or at least is supposed to. But
> > > indeed only one thread is used in my tests here too. The problem seems
> > > to be that LAPACK is not the OpenBLAS one:
> > > julia> versioninfo()
> > > Julia Version 0.3.0
> > > Platform Info:
> > >   System: Linux (x86_64-redhat-linux)
> > >   CPU: Intel(R) Core(TM) i5 CPU       M 450  @ 2.40GHz
> > >   WORD_SIZE: 64
> > >   BLAS: libopenblas (DYNAMIC_ARCH NO_AFFINITY)
> > >   LAPACK: liblapack
> > >   LIBM: libopenlibm
> > >   LLVM: libLLVM-3.3
> > > 
> > > And indeed I'm passing USE_SYSTEM_LAPACK=1. I didn't know it would incur
> > > such a slowdown. Is there a way to get Julia use the system's OpenBLAS
> > > version of LAPACK?
> > Replying to myself, it appears I can set LAPACK=-lopenblas and
> > LAPACKNAME=openblas when calling make. These should probably be made the
> > default, even when USE_SYSTEM_LAPACK=1, so that people have to
> > explicitly ask for the slow LAPACK.
> > 
> > The problem is, it doesn't make Julia use more than one thread, even
> > when calling Base.blas_set_num_threads(4). I've even removed all
> > liblapack* files to be sure it isn't used, no luck. So I guess there's a
> > problem with Fedora's OpenBLAS, I'll have a look.
> OK, that's because the maintainer of Fedora's OpenBLAS disabled
> optimized functions like LU after finding a bug in them some time ago.
> Now it appears to be fixed upstream, so the performance tuning can
> likely be brought back. I've filed a bug:
> https://bugzilla.redhat.com/show_bug.cgi?id=1144414
It turns out I've been too fast in designating a culprit. Actually the
bug above is an old story already.

The problem was just that I had naively linked Julia to libopenblas.so,
while in Fedora the threaded version is libopenblasp.so. The terminology
was probably obvious for some smart people, but it was obscure to me
until today. ;-)

Anyway, I've launched a new built to fix this on Copr, and the good news
is that I should be able to upload the RPM to Fedora repositories soon.


Last message in this soliloquy, promised!

Reply via email to