Re: [julia-users] Matlab bench in Julia

2014-09-26 Thread Ján Dolinský
Hello,

I am using the repo you mentioned. I upgraded to latest version and I get 
the following:
versioninfo()
Julia Version 0.3.1
Commit c03f413 (2014-09-21 21:30 UTC)
Platform Info:
  System: Linux (x86_64-linux-gnu)
  CPU: Intel(R) Core(TM) i5-4300U CPU @ 1.90GHz
  WORD_SIZE: 64
  BLAS: libblas.so.3
  LAPACK: liblapack.so.3
  LIBM: libopenlibm
  LLVM: libLLVM-3.3

I did not included Julia Dependencies repo because it is meant for Ubuntu 
up to 13.04.

I both repos however OpenBLAS is available only for Raring, Quantal and 
Precise not for Trusty Tahr ... so I assume Julia 0.3.1~trusty1 is using 
original Ubuntu repo for linear algebra libraries and thus users of Trusty 
Tahr ends up without OpenBLAS.

Best Regards,
Jan

Dňa štvrtok, 25. septembra 2014 16:57:48 UTC+2 Andreas Noack napísal(-a):

 It appears that you are not using a fast BLAS. The BLAS and LAPACK entries 
 in versioninfo() should say libopenblas instead of libblas and liblapack. 
 You should use 

 https://launchpad.net/~staticfloat/+archive/ubuntu/juliareleases

 as your repo for julia. That should give you Julia with fast linear 
 algebra.

 Med venlig hilsen

 Andreas Noack

 2014-09-25 10:36 GMT-04:00 Ján Dolinský jan.do...@2bridgz.com 
 javascript::

 Hello,

 Yes, Andreas point makes sense. Sometimes you may not want threaded 
 linear algebra routines. 

 My current installation reports this:
 versioninfo()
 Julia Version 0.3.0
 Commit 7681878 (2014-08-20 20:43 UTC)
 Platform Info:
   System: Linux (x86_64-linux-gnu)
   CPU: Intel(R) Core(TM) i5-4300U CPU @ 1.90GHz
   WORD_SIZE: 64
   BLAS: libblas.so.3
   LAPACK: liblapack.so.3
   LIBM: libopenlibm
   LLVM: libLLVM-3.3

 Am I using the right library ? How do I plug-in the OpenBLAS ? I am under 
 Ubuntu 14.4.01.

 Thanks,
 Jan

 Dňa štvrtok, 25. septembra 2014 14:47:12 UTC+2 Andreas Noack napísal(-a):

 OpenBLAS uses threads by default, but Milan reported that Fedora's 
 maintainer had them disabled. Hence, unless you are using Fedora, you 
 should have threaded OpenBLAS.

 What is the best setup for fast linear algebra operations ?


 That question doesn't have a single answer. Often when people want to 
 show performance of linear algebra libraries they run a single routine on a 
 big matrix. In that case you'll often benefit from many threads. However, 
 in many applications you solve smaller problems many times. In this case, 
 many threads can actually be a problem and you could be better off with 
 turning off OpenBLAS threading. So it depends on your problem.

 Med venlig hilsen

 Andreas Noack

 2014-09-25 5:52 GMT-04:00 Ján Dolinský:

 Hello,

 How do I make Julia to use threaded version of OpenBLAS ? Do I have to 
 compile using some special option or there is a config file ?
 What is the best setup for fast linear algebra operations ?

 Best Regards,
 Jan

 Dňa nedeľa, 21. septembra 2014 9:50:52 UTC+2 Stephan Buchert 
 napísal(-a):

 Wow, I have now LU a little bit faster on the latest julia Fedora 
 package than on my locally compiled julia:

 julia versioninfo()
 Julia Version 0.3.0
 Platform Info:
   System: Linux (x86_64-redhat-linux)
   CPU: Intel(R) Core(TM) i7-4700MQ CPU @ 2.40GHz
   WORD_SIZE: 64
   BLAS: libopenblas (DYNAMIC_ARCH NO_AFFINITY Haswell)
   LAPACK: libopenblasp.so.0
   LIBM: libopenlibm
   LLVM: libLLVM-3.3

 julia include(code/julia/bench.jl)
 LU decomposition, elapsed time: 0.07222901 seconds, was 0.123 seconds 
 with my julia
 FFT , elapsed time: 0.248571629 seconds

 Thanks for making and  improving the Fedora package





Re: [julia-users] Matlab bench in Julia

2014-09-26 Thread Ján Dolinský
Actually after more careful look, I found in Julia dependencies repo 
openblas 0.2.10.1-juliadeps1~trusty but I thought this repo is not needed 
because the description of the repo says it is meant for Ubuntu up to 13.04 
but apparently there are two packages for trusty in there ... 

Dňa piatok, 26. septembra 2014 10:14:10 UTC+2 Ján Dolinský napísal(-a):

 Hello,

 I am using the repo you mentioned. I upgraded to latest version and I get 
 the following:
 versioninfo()
 Julia Version 0.3.1
 Commit c03f413 (2014-09-21 21:30 UTC)
 Platform Info:
   System: Linux (x86_64-linux-gnu)
   CPU: Intel(R) Core(TM) i5-4300U CPU @ 1.90GHz
   WORD_SIZE: 64
   BLAS: libblas.so.3
   LAPACK: liblapack.so.3
   LIBM: libopenlibm
   LLVM: libLLVM-3.3

 I did not included Julia Dependencies repo because it is meant for Ubuntu 
 up to 13.04.

 I both repos however OpenBLAS is available only for Raring, Quantal and 
 Precise not for Trusty Tahr ... so I assume Julia 0.3.1~trusty1 is using 
 original Ubuntu repo for linear algebra libraries and thus users of Trusty 
 Tahr ends up without OpenBLAS.

 Best Regards,
 Jan

 Dňa štvrtok, 25. septembra 2014 16:57:48 UTC+2 Andreas Noack napísal(-a):

 It appears that you are not using a fast BLAS. The BLAS and LAPACK 
 entries in versioninfo() should say libopenblas instead of libblas and 
 liblapack. You should use 

 https://launchpad.net/~staticfloat/+archive/ubuntu/juliareleases

 as your repo for julia. That should give you Julia with fast linear 
 algebra.

 Med venlig hilsen

 Andreas Noack

 2014-09-25 10:36 GMT-04:00 Ján Dolinský jan.do...@2bridgz.com:

 Hello,

 Yes, Andreas point makes sense. Sometimes you may not want threaded 
 linear algebra routines. 

 My current installation reports this:
 versioninfo()
 Julia Version 0.3.0
 Commit 7681878 (2014-08-20 20:43 UTC)
 Platform Info:
   System: Linux (x86_64-linux-gnu)
   CPU: Intel(R) Core(TM) i5-4300U CPU @ 1.90GHz
   WORD_SIZE: 64
   BLAS: libblas.so.3
   LAPACK: liblapack.so.3
   LIBM: libopenlibm
   LLVM: libLLVM-3.3

 Am I using the right library ? How do I plug-in the OpenBLAS ? I am 
 under Ubuntu 14.4.01.

 Thanks,
 Jan

 Dňa štvrtok, 25. septembra 2014 14:47:12 UTC+2 Andreas Noack napísal(-a):

 OpenBLAS uses threads by default, but Milan reported that Fedora's 
 maintainer had them disabled. Hence, unless you are using Fedora, you 
 should have threaded OpenBLAS.

 What is the best setup for fast linear algebra operations ?


 That question doesn't have a single answer. Often when people want to 
 show performance of linear algebra libraries they run a single routine on 
 a 
 big matrix. In that case you'll often benefit from many threads. However, 
 in many applications you solve smaller problems many times. In this case, 
 many threads can actually be a problem and you could be better off with 
 turning off OpenBLAS threading. So it depends on your problem.

 Med venlig hilsen

 Andreas Noack

 2014-09-25 5:52 GMT-04:00 Ján Dolinský:

 Hello,

 How do I make Julia to use threaded version of OpenBLAS ? Do I have to 
 compile using some special option or there is a config file ?
 What is the best setup for fast linear algebra operations ?

 Best Regards,
 Jan

 Dňa nedeľa, 21. septembra 2014 9:50:52 UTC+2 Stephan Buchert 
 napísal(-a):

 Wow, I have now LU a little bit faster on the latest julia Fedora 
 package than on my locally compiled julia:

 julia versioninfo()
 Julia Version 0.3.0
 Platform Info:
   System: Linux (x86_64-redhat-linux)
   CPU: Intel(R) Core(TM) i7-4700MQ CPU @ 2.40GHz
   WORD_SIZE: 64
   BLAS: libopenblas (DYNAMIC_ARCH NO_AFFINITY Haswell)
   LAPACK: libopenblasp.so.0
   LIBM: libopenlibm
   LLVM: libLLVM-3.3

 julia include(code/julia/bench.jl)
 LU decomposition, elapsed time: 0.07222901 seconds, was 0.123 seconds 
 with my julia
 FFT , elapsed time: 0.248571629 seconds

 Thanks for making and  improving the Fedora package





Re: [julia-users] Matlab bench in Julia

2014-09-26 Thread Ján Dolinský
Adding the Julia Dependencies repo then updating and upgrading the system 
did not change anything. versioninfo() gives me the same output. Shall I 
purge Julia and re-install it again ?

Thanks,
Jan 

Dňa piatok, 26. septembra 2014 10:19:33 UTC+2 Ján Dolinský napísal(-a):

 Actually after more careful look, I found in Julia dependencies repo 
 openblas 0.2.10.1-juliadeps1~trusty but I thought this repo is not needed 
 because the description of the repo says it is meant for Ubuntu up to 13.04 
 but apparently there are two packages for trusty in there ... 

 Dňa piatok, 26. septembra 2014 10:14:10 UTC+2 Ján Dolinský napísal(-a):

 Hello,

 I am using the repo you mentioned. I upgraded to latest version and I get 
 the following:
 versioninfo()
 Julia Version 0.3.1
 Commit c03f413 (2014-09-21 21:30 UTC)
 Platform Info:
   System: Linux (x86_64-linux-gnu)
   CPU: Intel(R) Core(TM) i5-4300U CPU @ 1.90GHz
   WORD_SIZE: 64
   BLAS: libblas.so.3
   LAPACK: liblapack.so.3
   LIBM: libopenlibm
   LLVM: libLLVM-3.3

 I did not included Julia Dependencies repo because it is meant for Ubuntu 
 up to 13.04.

 I both repos however OpenBLAS is available only for Raring, Quantal and 
 Precise not for Trusty Tahr ... so I assume Julia 0.3.1~trusty1 is using 
 original Ubuntu repo for linear algebra libraries and thus users of Trusty 
 Tahr ends up without OpenBLAS.

 Best Regards,
 Jan

 Dňa štvrtok, 25. septembra 2014 16:57:48 UTC+2 Andreas Noack napísal(-a):

 It appears that you are not using a fast BLAS. The BLAS and LAPACK 
 entries in versioninfo() should say libopenblas instead of libblas and 
 liblapack. You should use 

 https://launchpad.net/~staticfloat/+archive/ubuntu/juliareleases

 as your repo for julia. That should give you Julia with fast linear 
 algebra.

 Med venlig hilsen

 Andreas Noack

 2014-09-25 10:36 GMT-04:00 Ján Dolinský jan.do...@2bridgz.com:

 Hello,

 Yes, Andreas point makes sense. Sometimes you may not want threaded 
 linear algebra routines. 

 My current installation reports this:
 versioninfo()
 Julia Version 0.3.0
 Commit 7681878 (2014-08-20 20:43 UTC)
 Platform Info:
   System: Linux (x86_64-linux-gnu)
   CPU: Intel(R) Core(TM) i5-4300U CPU @ 1.90GHz
   WORD_SIZE: 64
   BLAS: libblas.so.3
   LAPACK: liblapack.so.3
   LIBM: libopenlibm
   LLVM: libLLVM-3.3

 Am I using the right library ? How do I plug-in the OpenBLAS ? I am 
 under Ubuntu 14.4.01.

 Thanks,
 Jan

 Dňa štvrtok, 25. septembra 2014 14:47:12 UTC+2 Andreas Noack 
 napísal(-a):

 OpenBLAS uses threads by default, but Milan reported that Fedora's 
 maintainer had them disabled. Hence, unless you are using Fedora, you 
 should have threaded OpenBLAS.

 What is the best setup for fast linear algebra operations ?


 That question doesn't have a single answer. Often when people want to 
 show performance of linear algebra libraries they run a single routine on 
 a 
 big matrix. In that case you'll often benefit from many threads. However, 
 in many applications you solve smaller problems many times. In this case, 
 many threads can actually be a problem and you could be better off with 
 turning off OpenBLAS threading. So it depends on your problem.

 Med venlig hilsen

 Andreas Noack

 2014-09-25 5:52 GMT-04:00 Ján Dolinský:

 Hello,

 How do I make Julia to use threaded version of OpenBLAS ? Do I have 
 to compile using some special option or there is a config file ?
 What is the best setup for fast linear algebra operations ?

 Best Regards,
 Jan

 Dňa nedeľa, 21. septembra 2014 9:50:52 UTC+2 Stephan Buchert 
 napísal(-a):

 Wow, I have now LU a little bit faster on the latest julia Fedora 
 package than on my locally compiled julia:

 julia versioninfo()
 Julia Version 0.3.0
 Platform Info:
   System: Linux (x86_64-redhat-linux)
   CPU: Intel(R) Core(TM) i7-4700MQ CPU @ 2.40GHz
   WORD_SIZE: 64
   BLAS: libopenblas (DYNAMIC_ARCH NO_AFFINITY Haswell)
   LAPACK: libopenblasp.so.0
   LIBM: libopenlibm
   LLVM: libLLVM-3.3

 julia include(code/julia/bench.jl)
 LU decomposition, elapsed time: 0.07222901 seconds, was 0.123 
 seconds with my julia
 FFT , elapsed time: 0.248571629 seconds

 Thanks for making and  improving the Fedora package





Re: [julia-users] Matlab bench in Julia

2014-09-25 Thread Ján Dolinský
Hello,

How do I make Julia to use threaded version of OpenBLAS ? Do I have to 
compile using some special option or there is a config file ?
What is the best setup for fast linear algebra operations ?

Best Regards,
Jan

Dňa nedeľa, 21. septembra 2014 9:50:52 UTC+2 Stephan Buchert napísal(-a):

 Wow, I have now LU a little bit faster on the latest julia Fedora package 
 than on my locally compiled julia:

 julia versioninfo()
 Julia Version 0.3.0
 Platform Info:
   System: Linux (x86_64-redhat-linux)
   CPU: Intel(R) Core(TM) i7-4700MQ CPU @ 2.40GHz
   WORD_SIZE: 64
   BLAS: libopenblas (DYNAMIC_ARCH NO_AFFINITY Haswell)
   LAPACK: libopenblasp.so.0
   LIBM: libopenlibm
   LLVM: libLLVM-3.3

 julia include(code/julia/bench.jl)
 LU decomposition, elapsed time: 0.07222901 seconds, was 0.123 seconds with 
 my julia
 FFT , elapsed time: 0.248571629 seconds

 Thanks for making and  improving the Fedora package



Re: [julia-users] Matlab bench in Julia

2014-09-25 Thread Andreas Noack
OpenBLAS uses threads by default, but Milan reported that Fedora's
maintainer had them disabled. Hence, unless you are using Fedora, you
should have threaded OpenBLAS.

What is the best setup for fast linear algebra operations ?


That question doesn't have a single answer. Often when people want to show
performance of linear algebra libraries they run a single routine on a big
matrix. In that case you'll often benefit from many threads. However, in
many applications you solve smaller problems many times. In this case, many
threads can actually be a problem and you could be better off with turning
off OpenBLAS threading. So it depends on your problem.

Med venlig hilsen

Andreas Noack

2014-09-25 5:52 GMT-04:00 Ján Dolinský jan.dolin...@2bridgz.com:

 Hello,

 How do I make Julia to use threaded version of OpenBLAS ? Do I have to
 compile using some special option or there is a config file ?
 What is the best setup for fast linear algebra operations ?

 Best Regards,
 Jan

 Dňa nedeľa, 21. septembra 2014 9:50:52 UTC+2 Stephan Buchert napísal(-a):

 Wow, I have now LU a little bit faster on the latest julia Fedora package
 than on my locally compiled julia:

 julia versioninfo()
 Julia Version 0.3.0
 Platform Info:
   System: Linux (x86_64-redhat-linux)
   CPU: Intel(R) Core(TM) i7-4700MQ CPU @ 2.40GHz
   WORD_SIZE: 64
   BLAS: libopenblas (DYNAMIC_ARCH NO_AFFINITY Haswell)
   LAPACK: libopenblasp.so.0
   LIBM: libopenlibm
   LLVM: libLLVM-3.3

 julia include(code/julia/bench.jl)
 LU decomposition, elapsed time: 0.07222901 seconds, was 0.123 seconds
 with my julia
 FFT , elapsed time: 0.248571629 seconds

 Thanks for making and  improving the Fedora package




Re: [julia-users] Matlab bench in Julia

2014-09-25 Thread Milan Bouchet-Valat
Le jeudi 25 septembre 2014 à 08:47 -0400, Andreas Noack a écrit :
 OpenBLAS uses threads by default, but Milan reported that Fedora's
 maintainer had them disabled. Hence, unless you are using Fedora, you
 should have threaded OpenBLAS.
 
No, actually as I said above it was my mistake, and it's fixed for a few
days in the Copr packages. Now you get threads by default with RPM
packages on Fedora.


Regards



Re: [julia-users] Matlab bench in Julia

2014-09-25 Thread Ján Dolinský
Hello,

Yes, Andreas point makes sense. Sometimes you may not want threaded linear 
algebra routines. 

My current installation reports this:
versioninfo()
Julia Version 0.3.0
Commit 7681878 (2014-08-20 20:43 UTC)
Platform Info:
  System: Linux (x86_64-linux-gnu)
  CPU: Intel(R) Core(TM) i5-4300U CPU @ 1.90GHz
  WORD_SIZE: 64
  BLAS: libblas.so.3
  LAPACK: liblapack.so.3
  LIBM: libopenlibm
  LLVM: libLLVM-3.3

Am I using the right library ? How do I plug-in the OpenBLAS ? I am under 
Ubuntu 14.4.01.

Thanks,
Jan

Dňa štvrtok, 25. septembra 2014 14:47:12 UTC+2 Andreas Noack napísal(-a):

 OpenBLAS uses threads by default, but Milan reported that Fedora's 
 maintainer had them disabled. Hence, unless you are using Fedora, you 
 should have threaded OpenBLAS.

 What is the best setup for fast linear algebra operations ?


 That question doesn't have a single answer. Often when people want to show 
 performance of linear algebra libraries they run a single routine on a big 
 matrix. In that case you'll often benefit from many threads. However, in 
 many applications you solve smaller problems many times. In this case, many 
 threads can actually be a problem and you could be better off with turning 
 off OpenBLAS threading. So it depends on your problem.

 Med venlig hilsen

 Andreas Noack

 2014-09-25 5:52 GMT-04:00 Ján Dolinský:

 Hello,

 How do I make Julia to use threaded version of OpenBLAS ? Do I have to 
 compile using some special option or there is a config file ?
 What is the best setup for fast linear algebra operations ?

 Best Regards,
 Jan

 Dňa nedeľa, 21. septembra 2014 9:50:52 UTC+2 Stephan Buchert napísal(-a):

 Wow, I have now LU a little bit faster on the latest julia Fedora 
 package than on my locally compiled julia:

 julia versioninfo()
 Julia Version 0.3.0
 Platform Info:
   System: Linux (x86_64-redhat-linux)
   CPU: Intel(R) Core(TM) i7-4700MQ CPU @ 2.40GHz
   WORD_SIZE: 64
   BLAS: libopenblas (DYNAMIC_ARCH NO_AFFINITY Haswell)
   LAPACK: libopenblasp.so.0
   LIBM: libopenlibm
   LLVM: libLLVM-3.3

 julia include(code/julia/bench.jl)
 LU decomposition, elapsed time: 0.07222901 seconds, was 0.123 seconds 
 with my julia
 FFT , elapsed time: 0.248571629 seconds

 Thanks for making and  improving the Fedora package




Re: [julia-users] Matlab bench in Julia

2014-09-21 Thread Stephan Buchert
Wow, I have now LU a little bit faster on the latest julia Fedora package 
than on my locally compiled julia:

julia versioninfo()
Julia Version 0.3.0
Platform Info:
  System: Linux (x86_64-redhat-linux)
  CPU: Intel(R) Core(TM) i7-4700MQ CPU @ 2.40GHz
  WORD_SIZE: 64
  BLAS: libopenblas (DYNAMIC_ARCH NO_AFFINITY Haswell)
  LAPACK: libopenblasp.so.0
  LIBM: libopenlibm
  LLVM: libLLVM-3.3

julia include(code/julia/bench.jl)
LU decomposition, elapsed time: 0.07222901 seconds, was 0.123 seconds with 
my julia
FFT , elapsed time: 0.248571629 seconds

Thanks for making and  improving the Fedora package


Re: [julia-users] Matlab bench in Julia

2014-09-20 Thread Keith Campbell

Milan --  Thank you for your diligence!




Re: [julia-users] Matlab bench in Julia

2014-09-19 Thread Milan Bouchet-Valat
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.


Regards


Re: [julia-users] Matlab bench in Julia

2014-09-19 Thread Milan Bouchet-Valat
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


Regards



Re: [julia-users] Matlab bench in Julia

2014-09-19 Thread Milan Bouchet-Valat
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!


[julia-users] Matlab bench in Julia

2014-09-18 Thread Stephan Buchert
I have installed julia 0.3 from 
http://copr.fedoraproject.org/coprs/nalimilan/julia/ 
on my i7 Haswell 2.4 GHz laptop with updated Fedora 20.

Then I translated the first two parts of the Matlab bench script to julia:

# Transscript of the Matlab bench,
#   only LU and FFT
# Transscript of the Matlab bench,
#   only LU and FFT
print(LU decomposition, );
tic();
A = rand(1600, 1600);
lu(A);
toc();
print(FFT , );
n = 2^21;
tic();
x = rand(1,n);
fft(x);
fft(x);
toc();

The comparison is relatively disastrous for julia:
julia include(code/julia/bench.jl)
LU decomposition, elapsed time: 0.936670955 seconds
FFT , elapsed time: 0.208915093 seconds
(best out of 10 tries)

Matlab r2014a
LU decomposition: 0.0477 seconds
FFT: 0.0682 seconds

LU is 24 times slower on julia, FFT is 3 times slower. According to 
system-monitor Matlab bench causes 3 cores to be busy, julia only 1. This 
could explain the FFT result, but not the LU. 



Re: [julia-users] Matlab bench in Julia

2014-09-18 Thread Elliot Saba
The first thing you should do is run your code once to warm up the JIT, and
then run it again to measure the actual run time, rather than compile time
+ run time.  A convenient way to do this is to put your benchmark code
inside a function, run the function once, then run it again using the @time
macro.  I might modify your code a bit to the following:

function LU_test()
A = rand(1600, 1600);
lu(A);
end

function FFT_test()
n = 2^21;
x = rand(1,n);
fft(x);
fft(x);
end

LU_test()
FFT_test()

println(LU)
@time LU_test()
println(FFT)
@time FFT_test()


Note that I am now measuring the amount of time necessary to calculate
2^21, which you weren't before, but that shouldn't matter at all.  Try the
above and see if there is any improvement.  You may also want to read this
section of the manual when writing more complicated codes;
http://julia.readthedocs.org/en/latest/manual/performance-tips/
-E



On Thu, Sep 18, 2014 at 11:45 AM, Stephan Buchert stephanb...@gmail.com
wrote:

 I have installed julia 0.3 from
 http://copr.fedoraproject.org/coprs/nalimilan/julia/
 on my i7 Haswell 2.4 GHz laptop with updated Fedora 20.

 Then I translated the first two parts of the Matlab bench script to julia:

 # Transscript of the Matlab bench,
 #   only LU and FFT
 # Transscript of the Matlab bench,
 #   only LU and FFT
 print(LU decomposition, );
 tic();
 A = rand(1600, 1600);
 lu(A);
 toc();
 print(FFT , );
 n = 2^21;
 tic();
 x = rand(1,n);
 fft(x);
 fft(x);
 toc();

 The comparison is relatively disastrous for julia:
 julia include(code/julia/bench.jl)
 LU decomposition, elapsed time: 0.936670955 seconds
 FFT , elapsed time: 0.208915093 seconds
 (best out of 10 tries)

 Matlab r2014a
 LU decomposition: 0.0477 seconds
 FFT: 0.0682 seconds

 LU is 24 times slower on julia, FFT is 3 times slower. According to
 system-monitor Matlab bench causes 3 cores to be busy, julia only 1. This
 could explain the FFT result, but not the LU.




Re: [julia-users] Matlab bench in Julia

2014-09-18 Thread Milan Bouchet-Valat
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?


Regards



Re: [julia-users] Matlab bench in Julia

2014-09-18 Thread Andreas Noack
Ok I see. Good to hear that the package uses OpenBLAS. I have replied to a
couple of linux users who have complained about the slow linear algebra in
Julia.

Elliot is probably the right person to answer the question about the
linking.

Med venlig hilsen

Andreas Noack

2014-09-18 16:35 GMT-04:00 Milan Bouchet-Valat nalimi...@club.fr:

 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?


 Regards




Re: [julia-users] Matlab bench in Julia

2014-09-18 Thread Milan Bouchet-Valat
Le jeudi 18 septembre 2014 à 16:44 -0400, Andreas Noack a écrit :
 Ok I see. Good to hear that the package uses OpenBLAS. I have replied
 to a couple of linux users who have complained about the slow linear
 algebra in Julia.
What distributions did they use? We should try to improve these
packages, it's really bad advertisement for Julia, and a waste of
people's time not to use OpenBLAS by default.


Regards



Re: [julia-users] Matlab bench in Julia

2014-09-18 Thread Douglas Bates
Part of the problem is the definition of benchmark.  If all you are doing 
is solving a linear system or evaluating a decomposition then you are just 
benchmarking the BLAS/LAPACK implementation.  It doesn't really matter if 
user-facing language is Matlab or Octave or R or Julia.  They are just a 
thin wrapper around the BLAS/LAPACK calls in cases like this

On Thursday, September 18, 2014 3:59:08 PM UTC-5, Milan Bouchet-Valat wrote:

 Le jeudi 18 septembre 2014 à 16:44 -0400, Andreas Noack a écrit : 
  Ok I see. Good to hear that the package uses OpenBLAS. I have replied 
  to a couple of linux users who have complained about the slow linear 
  algebra in Julia. 
 What distributions did they use? We should try to improve these 
 packages, it's really bad advertisement for Julia, and a waste of 
 people's time not to use OpenBLAS by default. 


 Regards