[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Performance of a Windows Octave standalone.
From: |
Yadin Y. Goldschmidt |
Subject: |
Re: Performance of a Windows Octave standalone. |
Date: |
Fri, 29 Oct 2004 14:17:13 -0400 |
There is a big advantage for compiling with gcc 3.2.2 because of a known
problem with gcc 3.3 and above with octave.
Here are my test results for octave 2.1.60 comiled with cygwin
and gcc 3.2:
Octave Benchmark 2
==================
Number of times each test is run__________________________: 3
I. Matrix calculation
---------------------
Creation, transp., deformation of a 1500x1500 matrix (sec): 0.8523
800x800 normal distributed random matrix ^1000______ (sec): 0.8037
Sorting of 2,000,000 random values__________________ (sec): 0.9283
700x700 cross-product matrix (b = a' * a)___________ (sec): 3.358
Linear regression over a 600x600 matrix (c = a \ b') (sec): 0.7983
------------------------------------------------------
Trimmed geom. mean (2 extremes eliminated): 0.8599
II. Matrix functions
--------------------
FFT over 800,000 random values______________________ (sec): 0.823
Eigenvalues of a 320x320 random matrix______________ (sec): 0.963
Determinant of a 650x650 random matrix______________ (sec): 0.8977
Cholesky decomposition of a 900x900 matrix__________ (sec): 0.503
Inverse of a 400x400 random matrix__________________ (sec): 0.6413
------------------------------------------------------
Trimmed geom. mean (2 extremes eliminated): 0.7796
II. Matrix functions
--------------------
FFT over 800,000 random values______________________ (sec): 0.823
Eigenvalues of a 320x320 random matrix______________ (sec): 0.963
Determinant of a 650x650 random matrix______________ (sec): 0.8977
Cholesky decomposition of a 900x900 matrix__________ (sec): 0.503
Inverse of a 400x400 random matrix__________________ (sec): 0.6413
------------------------------------------------------
Trimmed geom. mean (2 extremes eliminated): 0.7796
III. Programmation
------------------
750,000 Fibonacci numbers calculation (vector calc)_ (sec): 1.662
Creation of a 2250x2250 Hilbert matrix (matrix calc) (sec): 2.217
Grand common divisors of 70,000 pairs (recursion)___ (sec): 0.9833
Creation of a 220x220 Toeplitz matrix (loops)_______ (sec): 2.975
Escoufier's method on a 37x37 matrix (mixed)________ (sec): 3.369
------------------------------------------------------
Trimmed geom. mean (2 extremes eliminated): 2.221
Total time for all 15 tests_________________________ (sec): 21.77
Overall mean (sum of I, II and III trimmed means/3)_ (sec): 1.142
--- End of test ---
You see that there can be a factor of 10 in the time in part III.
Cheers, Yadin.
"Ole Jacob Hagen" <address@hidden> wrote in message
news:address@hidden
> Hi.
>
> I have been struggling with NSIS, Cygwin and Windows lately, but have
> now made a stand alone installation package for octave-2.1.60, included
> octave-forge (CVS -version), some cygwin libraries, and support for
> gnuplot (windows version).
> You don't need Cygwin to run Octave, since the run-time libraries are
> included. ;-)
> Remember that there are no atlas or blas included here. It's purely
> Octave code.
>
>
> I compiled octave and octave-forge with gcc-3.3.3, and benchmarked my
> octave according to the benchmark suites found in
> http://www.sciviews.org/other/benchmark.htm. Thanks to D. Bateman, I
> could run the complete test. ;-)
> Attaches the gcd2.m file, that are required to finish point 3.C of the
> benchmark test.
>
> Take a look at the results from the bench-test. m-files are slow, but
> some oct-files are pretty acceptable.
> How does this compare with the Linux system?
>
> Could it be an advantage, if I compiled octave with gcc-3.2.2 instead?
> Could someone compare with gcc-3.2.2?
>
>
> I am having some hacking left to do, but when this is ready, I'll will
> make the stand-alone Octave available at sourceforge or octave.org.
>
> If you are really in a dead or alive situation with Octave on Windows,
> then send me an email.
> I will then give you access to my ftp, as fast as I can. ;-)
>
> Cheers,
>
> Ole J.
>
>
> And my results are:
>
> octave-2.1.60:8> benchmark
>
> Octave Benchmark 2
> ==================
> Number of times each test is run__________________________: 3
>
> I. Matrix calculation
> ---------------------
> Creation, transp., deformation of a 1500x1500 matrix (sec): 1.093
> 800x800 normal distributed random matrix ^1000______ (sec): 0.899
> Sorting of 2,000,000 random values__________________ (sec): 1.34
> 700x700 cross-product matrix (b = a' * a)___________ (sec): 4.224
> Linear regression over a 600x600 matrix (c = a \ b') (sec): 0.9883
> ------------------------------------------------------
> Trimmed geom. mean (2 extremes eliminated): 1.131
>
> II. Matrix functions
> --------------------
> FFT over 800,000 random values______________________ (sec): 0.9717
> Eigenvalues of a 320x320 random matrix______________ (sec): 1.215
> Determinant of a 650x650 random matrix______________ (sec): 1.166
> Cholesky decomposition of a 900x900 matrix__________ (sec): 0.6697
> Inverse of a 400x400 random matrix__________________ (sec): 0.9513
> ------------------------------------------------------
> Trimmed geom. mean (2 extremes eliminated): 1.025
>
> III. Programmation
> ------------------
> 750,000 Fibonacci numbers calculation (vector calc)_ (sec): 1.726
> Creation of a 2250x2250 Hilbert matrix (matrix calc) (sec): 0.8423
> Grand common divisors of 70,000 pairs (recursion)___ (sec): 3.229
> Creation of a 220x220 Toeplitz matrix (loops)_______ (sec): 38.49
> Escoufier's method on a 37x37 matrix (mixed)________ (sec): 26.15
> ------------------------------------------------------
> Trimmed geom. mean (2 extremes eliminated): 5.263
>
>
> Total time for all 15 tests_________________________ (sec): 83.96
> Overall mean (sum of I, II and III trimmed means/3)_ (sec): 1.828
> --- End of test ---
>
>
--------------------------------------------------------------------------------
> function c = gcd2(a, b)
> % Greatest common divisor by a recursive algorithm
> % This function is used for the Matlab benchmark
> % Use gcd(a, b) instead for other uses
> %
> % by Ph. Grosjean, 2001 (address@hidden)
>
> if b <= 1.0E-4
> c = a;
> else
> b(b == 0) = a(b == 0);
> c = gcd2(b, rem(a, b));
> end
>
>