|
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 |
|