혹시 린팩(linpack)에 대해 잘 아시는분 계시나요?
성능측정 프로그램중 linpack에 대해 궁금한점이 있습니다.
java로 작성된 linpack소스를 찾았으나 작성시점이 97년인가 그렇습니다(-0-;;)
때문에 프로그램이 약 0.04초 만에 종료되어 어느정도 정확한 성능측정이 어려울것 같아
problem size를 높혀서 측정하고 싶은데 problem size를 어떻게 하면 높이는지 모르겠습니다.
다음은 소스 일부분입니다.
public class Linpack {
private double mflops_result;
private double residn_result;
private double time_result;
private double eps_result;
Linpack()
{
mflops_result = 0.0;
residn_result = 0.0;
time_result = 0.0;
eps_result = 0.0;
}
...
public void run_benchmark()
{
mflops_result = 0.0;
residn_result = 0.0;
time_result = 0.0;
eps_result = 0.0;
double a[][] = new double[200][201];
double b[] = new double[200];
double x[] = new double[200];
double ops,total,norma,normx;
double resid,time;
int n,i,lda;
int ipvt[] = new int[200];
lda = 201;
n = 100;
ops = (2.0e0*(n*n*n))/3.0 + 2.0*(n*n);
norma = matgen(a,lda,n,b);
time = second();
dgesl(a,lda,n,ipvt,b,0);
total = second() - time;
for (i = 0; i < n; i++) {
x[i] = b[i];
}
norma = matgen(a,lda,n,b);
for (i = 0; i < n; i++) {
b[i] = -b[i];
}
dmxpy(n,b,n,lda,x,a);
resid = 0.0;
normx = 0.0;
for (i = 0; i < n; i++) {
resid = (resid > abs(b[i])) ? resid : abs(b[i]);
normx = (normx > abs(x[i])) ? normx : abs(x[i]);
}
eps_result = epslon((double)1.0);
residn_result = resid/( n*norma*normx*eps_result );
residn_result += 0.005; // for rounding
residn_result = (int)(residn_result*100);
residn_result /= 100;
time_result = total;
time_result += 0.005; // for rounding
time_result = (int)(time_result*100);
time_result /= 100;
mflops_result = ops/(1.0e6*total);
mflops_result += 0.0005; // for rounding
mflops_result = (int)(mflops_result*1000);
mflops_result /= 1000;
}
...
}
어디서 problem size를 지정하는지는 대충 알려주셔야...
ops 인가요 ?
------------------ System programmer...^^
댓글 달기