Blame src/Matlab/FlopsSampler.m

Packit 577717
function FlopsSampler(n) 
Packit 577717
Packit 577717
% A Sampler of Matlab functions that consume Floating Point Operations
Packit 577717
% in increasing order of floating point intensity.
Packit 577717
%
Packit 577717
%        FlopsSampler(n) - where n == array or vector size
Packit 577717
%
Packit 577717
Packit 577717
fprintf(1,'\nCounts Using PAPI\n');
Packit 577717
fprintf(1,'\n%24s %12s %14s %12s\n',  'Operations', 'n', 'fl pt ops', 'Mflop/s' )
Packit 577717
s1=rand(1,1);s2=rand(1,1);
Packit 577717
x=rand(n,1);y=rand(n,1);
Packit 577717
a=rand(n); 
Packit 577717
b=a;
Packit 577717
c=a*a';
Packit 577717
Packit 577717
fprintf(1,'%25s', 'calling PAPI flops')
Packit 577717
flops(0);
Packit 577717
[ops,mflops]=flops;
Packit 577717
fprintf(1,'%12d %14d %12.2f\n', n, ops, mflops )
Packit 577717
Packit 577717
fprintf(1,'%25s', 'dot product')
Packit 577717
flops(0);
Packit 577717
x'*y; 
Packit 577717
[ops,mflops]=flops;
Packit 577717
fprintf(1,'%12d %14d %12.2f\n', n, ops, mflops )
Packit 577717
Packit 577717
fprintf(1,'%25s', 'matrix vector')
Packit 577717
flops(0);
Packit 577717
a*x; 
Packit 577717
[ops,mflops]=flops;
Packit 577717
fprintf(1,'%12d %14d %12.2f\n', n, ops, mflops )
Packit 577717
Packit 577717
fprintf(1,'%25s', 'random matrix')
Packit 577717
flops(0);
Packit 577717
a=rand(n);
Packit 577717
[ops,mflops]=flops;
Packit 577717
fprintf(1,'%12d %14d %12.2f\n', n, ops, mflops )
Packit 577717
Packit 577717
fprintf(1,'%25s', 'chol(a)')
Packit 577717
flops(0);
Packit 577717
chol(c); 
Packit 577717
[ops,mflops]=flops;
Packit 577717
fprintf(1,'%12d %14d %12.2f\n', n, ops, mflops )
Packit 577717
Packit 577717
fprintf(1,'%25s', 'lu(a)')
Packit 577717
flops(0);
Packit 577717
lu(a); 
Packit 577717
[ops,mflops]=flops;
Packit 577717
fprintf(1,'%12d %14d %12.2f\n', n, ops, mflops )
Packit 577717
Packit 577717
fprintf(1,'%25s', 'x=a\y')
Packit 577717
flops(0);
Packit 577717
x=a\y; 
Packit 577717
[ops,mflops]=flops;
Packit 577717
fprintf(1,'%12d %14d %12.2f\n', n, ops, mflops )
Packit 577717
Packit 577717
fprintf(1,'%25s', 'condest(a)')
Packit 577717
flops(0);
Packit 577717
condest(a); 
Packit 577717
[ops,mflops]=flops;
Packit 577717
fprintf(1,'%12d %14d %12.2f\n', n, ops, mflops )
Packit 577717
Packit 577717
fprintf(1,'%25s', 'qr(a)')
Packit 577717
flops(0);
Packit 577717
qr(a); 
Packit 577717
[ops,mflops]=flops;
Packit 577717
fprintf(1,'%12d %14d %12.2f\n', n, ops, mflops )
Packit 577717
Packit 577717
fprintf(1,'%25s', 'matrix multiply')
Packit 577717
flops(0);
Packit 577717
a*b; 
Packit 577717
[ops,mflops]=flops;
Packit 577717
fprintf(1,'%12d %14d %12.2f\n', n, ops, mflops )
Packit 577717
Packit 577717
fprintf(1,'%25s', 'inv(a)')
Packit 577717
flops(0);
Packit 577717
inv(a); 
Packit 577717
[ops,mflops]=flops;
Packit 577717
fprintf(1,'%12d %14d %12.2f\n', n, ops, mflops )
Packit 577717
Packit 577717
fprintf(1,'%25s', 'svd(a)')
Packit 577717
flops(0);
Packit 577717
svd(a); 
Packit 577717
[ops,mflops]=flops;
Packit 577717
fprintf(1,'%12d %14d %12.2f\n', n, ops, mflops )
Packit 577717
Packit 577717
fprintf(1,'%25s', 'cond(a)')
Packit 577717
flops(0);
Packit 577717
cond(a); 
Packit 577717
[ops,mflops]=flops;
Packit 577717
fprintf(1,'%12d %14d %12.2f\n', n, ops, mflops )
Packit 577717
Packit 577717
fprintf(1,'%25s', 'hess(a)')
Packit 577717
flops(0);
Packit 577717
hess(a); 
Packit 577717
[ops,mflops]=flops;
Packit 577717
fprintf(1,'%12d %14d %12.2f\n', n, ops, mflops )
Packit 577717
Packit 577717
fprintf(1,'%25s', 'eig(a)')
Packit 577717
flops(0);
Packit 577717
eig(a); 
Packit 577717
[ops,mflops]=flops;
Packit 577717
fprintf(1,'%12d %14d %12.2f\n', n, ops, mflops )
Packit 577717
Packit 577717
fprintf(1,'%25s', '[u,s,v]=svd(a)')
Packit 577717
flops(0);
Packit 577717
[u,s,v]=svd(a); 
Packit 577717
[ops,mflops]=flops;
Packit 577717
fprintf(1,'%12d %14d %12.2f\n', n, ops, mflops )
Packit 577717
Packit 577717
fprintf(1,'%25s', 'pinv(a)')
Packit 577717
flops(0);
Packit 577717
pinv(a);
Packit 577717
[ops,mflops]=flops;
Packit 577717
fprintf(1,'%12d %14d %12.2f\n', n, ops, mflops )
Packit 577717
Packit 577717
fprintf(1,'%25s', 's=gsvd(a)')
Packit 577717
flops(0);
Packit 577717
s=gsvd(a,b);
Packit 577717
[ops,mflops]=flops;
Packit 577717
fprintf(1,'%12d %14d %12.2f\n', n, ops, mflops )
Packit 577717
Packit 577717
fprintf(1,'%25s', '[x,e]=eig(a)')
Packit 577717
flops(0);
Packit 577717
[x,e]=eig(a); 
Packit 577717
[ops,mflops]=flops;
Packit 577717
fprintf(1,'%12d %14d %12.2f\n', n, ops, mflops )
Packit 577717
Packit 577717
fprintf(1,'%25s', ' [u,v,x,c,s]=gsvd(a,b)')
Packit 577717
flops(0);
Packit 577717
[u,v,x,c,s]=gsvd(a,b);
Packit 577717
[ops,mflops]=flops;
Packit 577717
fprintf(1,'%12d %14d %12.2f\n', n, ops, mflops )
Packit 577717