help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Octave versus matlab performances on linux platform 64 bits


From: Sergei Steshenko
Subject: Re: Octave versus matlab performances on linux platform 64 bits
Date: Thu, 30 Oct 2008 05:07:47 -0700 (PDT)



--- On Wed, 10/29/08, Jaroslav Hajek <address@hidden> wrote:

> From: Jaroslav Hajek <address@hidden>
> Subject: Re: Octave versus matlab performances on linux platform 64 bits
> To: "Luca Tagliacozzo" <address@hidden>
> Cc: address@hidden
> Date: Wednesday, October 29, 2008, 11:47 PM
> On Thu, Oct 30, 2008 at 7:01 AM, Luca Tagliacozzo
> <address@hidden> wrote:
> > Hello, I was wondering what  I am doing wrong:
> >
> > I was planning to pass some matlab programs to octave
> but as I will have to
> > do real simulation I was planning to write them in
> C++.
> >
> > Before starting the project I decided to make a simple
> test.
> >
> > I took the DaCoda example of the matpow.m file, did
> the esteatical changes
> > such that it can be run on matlab,
> >
> > and I run it on matlab via the following script:
> test.m
> >
> >
> > a=matpow(rand(1000),10);
> >
> >
> > That is it mutliplies log_2(10) times  a 1000x1000
> matrix
> >
> > By running
> > time matlab -nodisplay <test.m
> >
> >
> > I get     0m4.076s as a user time
> >
> > we see that it take 4.076s to execute on my already
> fully loaded machine.
> >
> > Now always with the matpow.m file i did the following
> test:
> >
> > time octave test.m: user    0m21.189s
> > where we see that Octave took 21.189 seconds  (like 7
> times matlab)
> >
> > Till here nothing strange since I was exectuing the
> matpow.m file.
> > Now I compile the matpow.cc and I crosscheck that
> octave sees it:
> >
> >
> > octave:1> help matpow
> > Return b = a^n for square matrix a, and non-negative,
> integral
> > n./home/luca/Desktop/testing_perf/matpow.oct
> > ......
> >
> > where we see that indeed it does see it in
> > /home/luca/Desktop/testing_perf/matpow.oct
> >
> > So now I run again the test: and we see that the the
> time is now 20.161s
> > very slight variation with respect to the non compiled
> case.
> >
> >
> > I thought it could be a matter of overload taken by
> octave to startup so I
> > decided to increase the matrix size to 3000x3000 where
> we would expect that
> > this should run for around 10 minutes so that the
> starting overhead should
> > be negligible
> >
> >
> >
> >
> > By running the .m file with matlab I get: 1m3.564s
> >
> > By running the .oct file with octave I get: a user
> time 8m59.474s
> >
> > By running the .m file with octave I get: 8m58.702s
> >
> >
> >
> > So I do not get any increase of performance by
> compiling the matlab
> > matpow.cc .
> >
> >
> > What am I missing?
> 
> 
> What Octave version do you use? How is it configured?
> The speed of large matrix multiplication is basically all
> about what
> BLAS library you use. If Octave doesn't find a suitable
> BLAS library,
> it will compile a simplistic one for you, but depending on
> what
> Fortran compiler you use, the compiled thing's speed
> may range from "a
> little slow" to "really slow". Also, chances
> are that your Matlab's
> BLAS is exploiting multiple cores, if you have a multi-core
> machine.
> 
> -- 
> RNDr. Jaroslav Hajek
> computing expert
> Aeronautical Research and Test Institute (VZLU)
> Prague, Czech Republic
> url: www.highegg.matfyz.cz
> _______________________________________________
> Help-octave mailing list
> address@hidden
> https://www-old.cae.wisc.edu/mailman/listinfo/help-octave

I've tested that http://wiki.octave.org/wiki.pl?CodaTutorial matpow.cc
example on my self-built (including self-built ATLAS) 'octave' - the
machine runs 32 bit OS.

Here is the benchmark:

"
octave:8> tic;a=matpow(rand(1000),10);toc;
Elapsed time is 3.52261 seconds.
"

- not bad.

The CPU is AMD X2 (AM2) 5000+.

Regards,
  Sergei.


      


reply via email to

[Prev in Thread] Current Thread [Next in Thread]