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] <javascript:> > >: > >> 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- >>>>> mkl-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 >
