Performance of a Windows Octave standalone.

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Performance of a Windows Octave standalone.

Ole Jacob Hagen-3
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 ([hidden email])

if b <= 1.0E-4
  c = a;
else
  b(b == 0) = a(b == 0);
  c = gcd2(b, rem(a, b));
end