Sorry, forgot the timing with the default number of threads. *julia> **@time eigfact(M);*
elapsed time: 2.261110895 seconds (79997048 bytes allocated, 2.05% gc time) On Monday, July 13, 2015 at 10:19:33 AM UTC+10, Sheehan Olver wrote: > > I remember seeing this same performance gap before. I believe the problem > is that OpenBLAS doesn't have the correct thread defaults. Here are other > timings setting the threads directly: > > *julia> **blas_set_num_threads(1)* > > > *julia> **@time eigfact(M);* > > elapsed time: 1.827510669 seconds (79997048 bytes allocated, 1.88% gc time) > > > *julia> **blas_set_num_threads(2)* > > > *julia> **@time eigfact(M);* > > elapsed time: 1.549618631 seconds (79997048 bytes allocated) > > > *julia> **blas_set_num_threads(3);@time eigfact(M);* > > elapsed time: 1.498852226 seconds (79997048 bytes allocated, 2.63% gc time) > > > *julia> **blas_set_num_threads(4);@time eigfact(M);* > > elapsed time: 2.062847561 seconds (79997048 bytes allocated) > > On Monday, July 13, 2015 at 4:33:56 AM UTC+10, Evgeni Bezus wrote: >> >> Hi all, >> >> I am a Julia novice and I am considering it as a potential alternative to >> MATLAB. >> My field is computational nanophotonics and the main numerical technique >> that I use involves multiple solution of the eigenvalue/eigenvector problem >> for dense matrices with size of about 1000*1000 (more or less). >> I tried to run the following nearly equivalent code in Julia and in >> MATLAB: >> >> Julia code: >> >> n = 1000 >> M = rand(n, n) >> F = eigfact(M) >> tic() >> for i = 1:10 >> F = eigfact(M) >> end >> toc() >> >> >> MATLAB code: >> >> n = 1000; >> M = rand(n, n); >> [D, V] = eig(M); >> tic; >> for i = 1:10 >> [D, V] = eig(M); >> end >> toc >> >> It turns out that MATLAB's eig() runs nearly 2.3 times faster than eig() >> or eigfact() in Julia. On the machine available to me right now (relatively >> old Core i5 laptop) the average time for MATLAB is of about 37 seconds, >> while the mean Julia time is of about 85 seconds. I use MATLAB R2010b and >> Julia 0.3.7 (i tried to run the code both in Juno and in a REPL session and >> obtained nearly identical results). >> >> Is there anything that I'm doing wrong? >> >> Best regards, >> Evgeni >> >