Unfortunately, it is not that clear cut. In the thread I linked you can see some discussion and timings. It is correct that OpenBLAS is faster for large problems, but it is slower for small problems.
2014-05-22 23:17 GMT+02:00 Thomas Covert <[email protected]>: > By the way, switching to Homebrew and compiling a recent git pull solved > the problem. Now my matrix inversions occur at MATLAB speeds or faster. > > > On Monday, May 19, 2014 7:58:06 AM UTC-5, Andreas Noack Jensen wrote: > >> Thanks. Julia is calling the correct method. >> >> However, I didn't read your last email carefully enough. You are pointing >> to the problem. The pre-build binary for Mac does not use OpenBLAS but >> Apple's Accelerate which apparently is slower. I have filed an issue >> >> https://github.com/JuliaLang/julia/issues/6887 >> >> >> 2014-05-19 14:06 GMT+02:00 Thomas Covert <[email protected]>: >> >> Here's what I get: >>> >>> julia> K = randn(2500,2500); >>> >>> julia> K = K' * K; >>> >>> julia> @which inv(lufact(K)) >>> inv{T<:Union(Float64,Complex{Float64},Complex{Float32}, >>> Float32),S<:Union(DenseArray{T,2},SubArray{T,2,A<: >>> DenseArray{T,N},I<:(Union(Range{Int64},Int64)...,)})}(A: >>> :LU{T<:Union(Float64,Complex{Float64},Complex{Float32}, >>> Float32),S<:Union(DenseArray{T,2},SubArray{T,2,A<: >>> DenseArray{T,N},I<:(Union(Range{Int64},Int64)...,)})}) at >>> linalg/lu.jl:145 >>> >>> >>> On Monday, May 19, 2014 3:25:30 AM UTC-5, Andreas Noack Jensen wrote: >>> >>>> In generaI, I don't think most people experience that MKL is faster >>>> that OpenBLAS. On my MacBook, Julia with OpenBLAS and Matlab performs very >>>> similar on the symmetric inversion problem. >>>> >>>> Some time ago, there used to be a problem with inv falling back on a >>>> slower method. I should be fixed now, but maybe the difference you see is >>>> my fault and not OpenBLAS'. What do you see if you type >>>> >>>> @which inv(lufact(K)) >>>> >>>> >>>> 2014-05-19 1:46 GMT+02:00 Thomas Covert <[email protected]>: >>>> >>>>> Thanks for sending that along - might go down that route once it's >>>>> clear that MKL would do the trick and that the fixed costs of building it >>>>> myself are worth it. >>>>> >>>>> Are there other mac users using the pre-built binaries that see these >>>>> same performance differences? Why do the mac binaries report libgfortblas >>>>> and liblapack when the windows and Linux binaries report libopenblas? >>>>> >>>>> >>>>> On Sunday, May 18, 2014, Leah Hanson <[email protected]> wrote: >>>>> >>>>>> There are instructions in the Julia README and on Intel's website for >>>>>> running Julia with MKL: >>>>>> >>>>>> https://github.com/JuliaLang/julia#intel-math-kernel-libraries >>>>>> https://software.intel.com/en-us/articles/julia-with-intel-m >>>>>> kl-for-improved-performance >>>>>> >>>>>> -- Leah >>>>>> >>>>>> >>>>>> On Sun, May 18, 2014 at 3:59 PM, Thomas Covert <[email protected] >>>>>> > wrote: >>>>>> >>>>>>> Seems like the windows and Mac versions of Julia call different >>>>>>> blas/lapack routines. Might that be the cause? Is it possible for me >>>>>>> to >>>>>>> ask julia to use a different blas/lapack? >>>>>>> >>>>>>> >>>>>>> On Sunday, May 18, 2014, J Luis <[email protected]> wrote: >>>>>>> >>>>>>>> Funny, in a similar machine (but running Windows) I get the opposite >>>>>>>> >>>>>>>> Matlab 2012a (32 bits) >>>>>>>> >> tic; inv(K); toc >>>>>>>> Elapsed time is 3.837033 seconds. >>>>>>>> >>>>>>>> >>>>>>>> julia> tic(); inv(K); toc() >>>>>>>> elapsed time: 1.157727675 seconds >>>>>>>> 1.157727675 >>>>>>>> >>>>>>>> julia> versioninfo() >>>>>>>> Julia Version 0.3.0-prerelease+3081 >>>>>>>> Commit eb4bfcc* (2014-05-16 15:12 UTC) >>>>>>>> Platform Info: >>>>>>>> System: Windows (x86_64-w64-mingw32) >>>>>>>> CPU: Intel(R) Core(TM) i7 CPU M 620 @ 2.67GHz >>>>>>>> WORD_SIZE: 64 >>>>>>>> BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY) >>>>>>>> LAPACK: libopenblas >>>>>>>> LIBM: libopenlibm >>>>>>>> >>>>>>>> Domingo, 18 de Maio de 2014 19:16:48 UTC+1, Thomas Covert escreveu: >>>>>>>>> >>>>>>>>> I am finding that MATLAB is considerably faster than Julia for >>>>>>>>> simple linear algebra work on my machine (mid-2009 macbook pro). Why >>>>>>>>> might >>>>>>>>> this be? Is this an OpenBLAS vs Intel MKL issue? >>>>>>>>> >>>>>>>>> For example, on my machine, matrix inversion of a random, >>>>>>>>> symmetric matrix is more than twice as fast in MATLAB as it is in >>>>>>>>> Julia: >>>>>>>>> >>>>>>>>> MATLAB code: >>>>>>>>> K = randn(2500,2500); >>>>>>>>> K = K' * K; >>>>>>>>> tic; inv(K); toc >>>>>>>>> Elapsed time is 2.182241 seconds. >>>>>>>>> >>>>>>>>> Julia code: >>>>>>>>> K = convert(Array{Float32},randn(2500,2500)); >>>>>>>>> K = K' * K; >>>>>>>>> tic(); inv(K); toc() >>>>>>>>> elapsed time: 6.249259727 seconds >>>>>>>>> >>>>>>>>> I'm running a fairly recent MATLAB release (2014a), and >>>>>>>>> versioninfo() in my Julia install reads: >>>>>>>>> Julia Version 0.3.0-prerelease+2918 >>>>>>>>> Commit 104568c* (2014-05-06 22:29 UTC) >>>>>>>>> Platform Info: >>>>>>>>> System: Darwin (x86_64-apple-darwin12.5.0) >>>>>>>>> CPU: Intel(R) Core(TM)2 Duo CPU P8700 @ 2.53GHz >>>>>>>>> WORD_SIZE: 64 >>>>>>>>> BLAS: libgfortblas >>>>>>>>> LAPACK: liblapack >>>>>>>>> LIBM: libopenlibm >>>>>>>>> >>>>>>>>> Any advice is much appreciated. >>>>>>>>> >>>>>>>>> >>>>>> >>>> >>>> >>>> -- >>>> Med venlig hilsen >>>> >>>> Andreas Noack Jensen >>>> >>> >> >> >> -- >> Med venlig hilsen >> >> Andreas Noack Jensen >> > -- Med venlig hilsen Andreas Noack Jensen
