From maintainers-request at octave dot org Fri Oct 29 13:24:55 2004 Subject: Re: Performance of a Windows Octave standalone. From: "Yadin Y. Goldschmidt" To: maintainers at octave dot org 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" wrote in message news:41822502 dot 7080408 at yahoo dot no dot dot dot > 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 (phgrosjean at sciviews dot org) > > if b <= 1.0E-4 > c = a; > else > b(b == 0) = a(b == 0); > c = gcd2(b, rem(a, b)); > end > >