Re: [julia-users] Matlab bench in Julia
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ý : >>> 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
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ý : >> >>> 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
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ý >: > >> 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
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ý : > 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
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
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
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
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
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
Milan -- Thank you for your diligence! >
Re: [julia-users] Matlab bench in Julia
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!
Re: [julia-users] Matlab bench in Julia
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
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
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 > >
Re: [julia-users] Matlab bench in Julia
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
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 : > 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
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
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 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
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. Med venlig hilsen Andreas Noack 2014-09-18 14:45 GMT-04:00 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. > >
[julia-users] Matlab bench in Julia
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.