On 5 Sep 2010, at 16:14, c. wrote:

> In case anyone wants to check the results shown in that paper I  
> prepared a script performing (what is my interpretetion of)
> the benchmarks listed in the tables, this could be helpful for  
> keeping the discussion with the authors on technical grounds rather  
> than starting a flamewar.
> I also reported the results I obtained on my 2.5 years old core2-duo  
> macbook running OS X 10.5.8 and Octave.app 3.2.3.
> My guess is that those guys somehow got a version of Octave linked  
> to a poor implementation of BLAS/LAPACK
>
> HTH,
> c.
>
> P.S. tests from the statistics section are missing as I went out of  
> time, sorry

Just for curiosity I ran the same tests with Matlab 2007b.

--------------8<--------------8<--------------

clear all

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Miscellaneous operations                    freemat   mathnium    
octave       R         Scilab
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Loop test 10,000 × 10,000               601.606   798.788    
1526.000   261.077     271.713

tic, for ii=1:1e4, for jj=1:1e4, end, end, toc()
%Elapsed time is 14.674 seconds.   (OCTAVE 3.2.3)
%Elapsed time is 5.390617 seconds. (MATLAB 2007b)

% 2000 × 2000 random matrix^1000               1.573     3.886       
0.592     0.745      29.398

a = rand(2000);
tic, a^1e3; toc()
%Elapsed time is 23.488 seconds.   (OCTAVE 3.2.3)
%Elapsed time is 42.178718 seconds.(MATLAB 2007b)

tic, a.^1e3; toc()
%Elapsed time is 0.42365 seconds.  (OCTAVE 3.2.3)
%Elapsed time is 0.931563 seconds. (MATLAB 2007b)

% Sorting of 5,000,000 random values           4.545    94.692       
1.581     1.449       2.300

a = rand (5e6, 1);
tic (), sort (a); toc ()
%Elapsed time is 1.2075 seconds.   (OCTAVE 3.2.3)
%Elapsed time is 0.762534 seconds. (MATLAB 2007b)

% FFT over 220 random values                   0.405    23.912       
0.137     0.763       0.991

a = rand (220, 1);
tic (), fft (a); toc ()
%Elapsed time is 0.00012302 seconds. (OCTAVE 3.2.3)
%Elapsed time is 0.005763 seconds.   (MATLAB 2007b)

% Calculation of 2,000,000 Fibonacci numbers   1.798    81.205       
2.514     0.430       3.047

nf = 2e6;
%with for loop
tic; fib = ones (nf, 1); for ii=3:nf; fib(ii) = fib(ii-1)+fib(ii-2);  
end; toc()
%Elapsed time is 39.529878 seconds.  (OCTAVE 3.2.3)
%Elapsed time is 0.475654 seconds.   (MATLAB 2007b)

%with filter
tic (); x = [1; zeros(nf-1, 1)]; a = [1 -1 -1]; b = 1; fibfil =  
filter(b, a, x); toc ()
%Elapsed time is 0.8 seconds.        (OCTAVE 3.2.3)
%Elapsed time is 0.318991 seconds.   (MATLAB 2007b)
isequal (fib, fibfil)
%ans =  1

% Factorial of a big integer (10 digits)       0.002     0.003       
0.007     0.008       0.003

a = floor (rand (1)*1e10)
%a =  8.2000e+09                     (OCTAVE 3.2.3)
tic, factorial (a); toc
%Elapsed time is 0.000299 seconds.   (OCTAVE 3.2.3)
%a = 8.5480e+09                      (MATLAB 2007b)
%Elapsed time is 0.203658 seconds.   (MATLAB 2007b)

% Plot 2-D on 200,000 points                   0.563     1.072       
0.128     7.988      19.292

%with gnuplot
a = rand (2e5, 1);
tic (); plot (a); toc ()
%Elapsed time is 0.6472 seconds.  (OCTAVE 3.2.3) (but the window takes  
much longer to show up)
%Elapsed time is 0.463007 seconds.(MATLAB 2007b)

%close all
%backend ('fltk')
%tic (); plot (a); toc ()
%Elapsed time is 0.04016 seconds. (and the window comes up very quickly)

% Plot 3-D on 200,000 points                   1.105     3.691       
0.091     0.216       1.789

%close all
%backend ('gnuplot')
tic (); plot3 (a,a,a); toc ()
%Elapsed time is 0.438453 seconds.  (OCTAVE 3.2.3) (but the window  
takes forever to show up)
%Elapsed time is 0.100713 seconds.  (MATLAB 2007b)

%close all
%backend ('fltk')
%tic (); plot3 (a); toc ()
%Elapsed time is 0.04582 seconds. (and the window comes up very quickly)
% Average performance for  this group         37.71%    14.57%      
68.49%    57.62%      31.01%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Matrix operations                                             
freemat   mathnium   octave       R         Scilab
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Matrix multiplication among two 2000 × 2000 random matrices    
8.187   171.389     18.664      0.070      4.626

a = rand (2e3, 2e3);
b = rand (2e3, 2e3);
tic (); a*b; toc ()
%Elapsed time is 1.3 seconds.      (OCTAVE 3.2.3)
%Elapsed time is 2.775727 seconds. (MATLAB 2007b)

tic (); a.*b; toc ()
%Elapsed time is 0.06476 seconds.  (OCTAVE 3.2.3)
%Elapsed time is 0.090595 seconds. (MATLAB 2007b)

% Transpose of a 2000 × 2000 random matrix                       
0.311     2.494      0.110      1.853      0.127

tic (); a'; toc ()
%Elapsed time is 0.06137 seconds.  (OCTAVE 3.2.3)
%Elapsed time is 0.073362 seconds. (MATLAB 2007b)

tic (); a.'; toc ()
%Elapsed time is 0.066 seconds.    (OCTAVE 3.2.3)
%Elapsed time is 0.074273 seconds. (MATLAB 2007b)

% Creation of a 2000 × 2000 Hilbert matrix                       
0.042     -          0.351      0.519      0.229

tic (); a = hilb (2e3); toc ()
%Elapsed time is 0.3474 seconds.   (OCTAVE 3.2.3)
%Elapsed time is 0.351489 seconds. (MATLAB 2007b)

% Hessenberg form of a 2000 × 2000 random matrix                 
-       501.603   1274.100       -        29.412

a = rand (2e3, 2e3);
tic (); hess (a); toc ()
%Elapsed time is 11.886 seconds.   (OCTAVE 3.2.3)
%Elapsed time is 10.868122 seconds.(MATLAB 2007b)

% Rank of a 2000 × 2000 random matrix                           
32.150   308.015     27.225     15.597     29.273

tic (); rank (a); toc ()
%Elapsed time is 13.795 seconds.   (OCTAVE 3.2.3)
%Elapsed time is 13.845157 seconds.(MATLAB 2007b)

% Trace of a 2000 × 2000 random matrix                          
60.195     0.679      0.028      0.038      0.005

tic (); trace (a); toc ()
%Elapsed time is 0.003068 seconds. (OCTAVE 3.2.3)
%Elapsed time is 0.003581 seconds. (MATLAB 2007b)

% Condition number of a 2000 × 2000 random matrix              
491.47   3939.406     20.735     16.853     29.257

tic (); cond (a); toc ()
%Elapsed time is 13.394 seconds.   (OCTAVE 3.2.3)
%Elapsed time is 13.796607 seconds.(MATLAB 2007b)

% Kronecker product of two 200 × 200 random matrices             
-        20.367      0.210      0.337      0.102

a = rand (200);
b = rand (200);
tic; kron (a, b); toc ()
%error: memory exhausted or requested size too large for range of  
Octave's index type -- trying to return to prompt
%??? Maximum variable size allowed by the program is exceeded.

% Average performance for the tests of this group               
31.35%     2.42%     39.75%     50.90%     64.68%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Basic algebra                                       freemat    
mathnium   octave       R         Scilab
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Determinant of a 2000 × 2000 random matrix           3.945      
33.214    6.007      5.796       3.249
a = rand (2000);
tic; det (a); toc ()
%Elapsed time is 0.739024 seconds.  (OCTAVE 3.2.3)
%Elapsed time is 1.328320 seconds.  (MATLAB 2007b)

% Inverse of a 2000 × 2000 random matrix             533.880      
78.364   18.991     24.409       9.489
tic; inv (a); toc ()
%Elapsed time is 2.23666 seconds.   (OCTAVE 3.2.3)
%Elapsed time is 3.738769 seconds.  (MATLAB 2007b)

% Eigenvalues of a 2000 × 2000 random matrix          44.679    
3645.349   58.462     59.596      46.147
tic; eig (a); toc ()
%Elapsed time is 47.4915 seconds.    (OCTAVE 3.2.3)
%Elapsed time is 25.883309 seconds.  (MATLAB 2007b)

% Eigenvectors over a 2000 × 2000 random matrix      104.053    
3787.40   125.200    126.105     540.456
tic; [v, l] = eig (a); toc ()
%Elapsed time is 120.715 seconds.    (OCTAVE 3.2.3)
%Elapsed time is 60.933535 seconds.  (MATLAB 2007b)

% 2000 × 2000 dot product matrix                       8.665    
181.192   18.763      11.995      4.751
a = rand (2e3, 1); b = rand (1, 2e3);
tic; a * b; toc () %% Is that what is meant by dot product matrix??
%Elapsed time is 0.0591681 seconds. (OCTAVE 3.2.3)
%Elapsed time is 0.068592 seconds.  (MATLAB 2007b)

% Norm of a 2000 × 2000 random matrix                 30.000      
6.623   27.196       0.180     29.240
a = rand (2e3);
tic; norm (a); toc ()
%Elapsed time is 13.2002 seconds.    (OCTAVE 3.2.3)
%Elapsed time is 14.482328 seconds.  (MATLAB 2007b)

% Linear system solve of 1500 equations                1.903      
7.151    2.764       2.677     76.925
a = rand (1.5e3); b = rand (1.5e3, 1);
tic; a \ b; toc ()
%Elapsed time is 0.40785 seconds.   (OCTAVE 3.2.3)
%Elapsed time is 0.966565 seconds.  (MATLAB 2007b)

% Average performance for the tests of this group     62.80%     
8.26%    51.20%     66.16%      59.88%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Advanced algebra                                           freemat    
mathnium   octave       R         Scilab
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Cholesky decomposition of a 2000 × 2000 random matrix   –      
-        51.931     2.843       2.920      1.716
a = rand (2e3);
a = a*a';
tic; chol (a); toc ()
%Elapsed time is 0.388352 seconds.  (OCTAVE 3.2.3)
%Elapsed time is 0.741667 seconds.  (MATLAB 2007b)

% Lu decomposition of a 1500 × 1500 random matrix                
1.667    19.799     6.709       0.003      1.687
a = rand (1500);
tic; lu (a); toc ()
%Elapsed time is 0.689038 seconds.  (OCTAVE 3.2.3)
%Elapsed time is 0.565525 seconds.  (MATLAB 2007b)

% Qr decomposition of a 1200 × 1200 random matrix                
3.055    54.817    24.710       3.234      2.970
a = rand (1200);
tic; qr (a); toc ()
%Elapsed time is 0.819952 seconds. (OCTAVE 3.2.3)
%Elapsed time is 0.806941 seconds. (MATLAB 2007b)

% Singular value decomposition of a 2000 × 2000 random matrix   
59.016  3871.344   205.740      86.328     29.167
a = rand (2000);
tic; svd (a); toc ()
%Elapsed time is 13.3108 seconds.    (OCTAVE 3.2.3)
%Elapsed time is 14.219388 seconds.  (MATLAB 2007b)

% Schur decomposition of a 1500 × 1500 random matrix             
-       325.062    32.601      51.172     30.227
a = rand (1500);
tic; schur (a); toc ()
%Elapsed time is 29.2586 seconds.    (OCTAVE 3.2.3)
%Elapsed time is 13.650963 seconds.  (MATLAB 2007b)

% Reduced Row Echelon Form of a 2000 × 2000 random matrix      
311.442    21.890   269.770 –     -        144.047
a = rand (2000);
tic; rref (a); toc ()
%Elapsed time is 196.287 seconds.     (OCTAVE 3.2.3)
%Elapsed time is 392.817202 seconds.  (MATLAB 2007b)


------------------------------------------------------------------------------
This SF.net Dev2Dev email is sponsored by:

Show off your parallel programming skills.
Enter the Intel(R) Threading Challenge 2010.
http://p.sf.net/sfu/intel-thread-sfd
_______________________________________________
Octave-dev mailing list
Octave-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/octave-dev

Reply via email to