octave-maintainers
[Top][All Lists]
Advanced

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

Performance of a Windows Octave standalone.


From: Ole Jacob Hagen
Subject: Performance of a Windows Octave standalone.
Date: Fri, 29 Oct 2004 13:09:54 +0200
User-agent: Mozilla Thunderbird 0.7 (Windows/20040616)

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


reply via email to

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