summaryrefslogtreecommitdiff
path: root/benchmarks/linpack-bench
diff options
context:
space:
mode:
authorjtb <jtb@pkgsrc.org>2001-04-27 22:29:38 +0000
committerjtb <jtb@pkgsrc.org>2001-04-27 22:29:38 +0000
commitf59d11d7ad8843065b222746f83475a67d5023d9 (patch)
tree92c63e70c771f2587f2039a7641bc79f88bc8b5e /benchmarks/linpack-bench
parente07d08177881ac7ea149d819ec57e5662644dd12 (diff)
downloadpkgsrc-f59d11d7ad8843065b222746f83475a67d5023d9.tar.gz
Reimport of former benchmarks/linpack package as linpack-bench.
Diffstat (limited to 'benchmarks/linpack-bench')
-rw-r--r--benchmarks/linpack-bench/Makefile35
-rw-r--r--benchmarks/linpack-bench/patches/patch-aa229
-rw-r--r--benchmarks/linpack-bench/pkg/DESCR14
-rw-r--r--benchmarks/linpack-bench/pkg/PLIST3
4 files changed, 281 insertions, 0 deletions
diff --git a/benchmarks/linpack-bench/Makefile b/benchmarks/linpack-bench/Makefile
new file mode 100644
index 00000000000..e5242915b4c
--- /dev/null
+++ b/benchmarks/linpack-bench/Makefile
@@ -0,0 +1,35 @@
+# $NetBSD: Makefile,v 1.1.1.1 2001/04/27 22:29:38 jtb Exp $
+
+DISTNAME= linpackc
+PKGNAME= linpack-bench-940225
+CATEGORIES= benchmarks
+MASTER_SITES= http://www.netlib.org/benchmark/
+EXTRACT_SUFX= # empty
+
+MAINTAINER= root@garbled.net
+COMMENT= Collection of benchmarks for floating point
+
+NO_WRKSUBDIR= yes
+
+do-extract:
+ ${MKDIR} ${WRKSRC}
+ ${CP} ${DISTDIR}/linpackc ${WRKSRC}/linpack.c
+
+do-build:
+ (cd ${WRKSRC} ; ${CC} ${CFLAGS} -DROLL -DDP -o linpackd linpack.c -lm)
+ (cd ${WRKSRC} ; ${CC} ${CFLAGS} -DROLL -DSP -o linpacks linpack.c -lm)
+
+do-install:
+ ${INSTALL_PROGRAM} ${WRKSRC}/linpackd ${PREFIX}/bin
+ ${INSTALL_PROGRAM} ${WRKSRC}/linpacks ${PREFIX}/bin
+
+benchmark:
+ -@${WRKSRC}/linpacks | tee ${WRKSRC}/linpacks.out
+ -@${WRKSRC}/linpackd | tee ${WRKSRC}/linpackd.out
+
+results:
+ @${MKDIR} /tmp/benches/`domainname`
+ -@${CP} ${WRKSRC}/linpacks.out /tmp/benches/`domainname`/linpacks.`uname`-`uname -m`-`uname -r`.`hostname`
+ -@${CP} ${WRKSRC}/linpackd.out /tmp/benches/`domainname`/linpackd.`uname`-`uname -m`-`uname -r`.`hostname`
+
+.include "../../mk/bsd.pkg.mk"
diff --git a/benchmarks/linpack-bench/patches/patch-aa b/benchmarks/linpack-bench/patches/patch-aa
new file mode 100644
index 00000000000..28e37305092
--- /dev/null
+++ b/benchmarks/linpack-bench/patches/patch-aa
@@ -0,0 +1,229 @@
+$NetBSD: patch-aa,v 1.1.1.1 2001/04/27 22:29:40 jtb Exp $
+--- linpack.c.orig Sun Aug 30 11:34:04 1998
++++ linpack.c Sun Aug 30 11:40:18 1998
+@@ -48,7 +48,7 @@
+ #include <stdio.h>
+ #include <math.h>
+
+-static REAL time[9][9];
++static REAL timex[9][9];
+
+ main ()
+ {
+@@ -71,11 +71,11 @@
+ matgen(a,lda,n,b,&norma);
+ t1 = second();
+ dgefa(a,lda,n,ipvt,&info);
+- time[0][0] = second() - t1;
++ timex[0][0] = second() - t1;
+ t1 = second();
+ dgesl(a,lda,n,ipvt,b,0);
+- time[1][0] = second() - t1;
+- total = time[0][0] + time[1][0];
++ timex[1][0] = second() - t1;
++ total = timex[0][0] + timex[1][0];
+
+ /* compute a residual to verify results. */
+
+@@ -108,10 +108,10 @@
+ fprintf(stderr," dgefa dgesl total kflops unit");
+ fprintf(stderr," ratio\n");
+
+- time[2][0] = total;
+- time[3][0] = ops/(1.0e3*total);
+- time[4][0] = 2.0e3/time[3][0];
+- time[5][0] = total/cray;
++ timex[2][0] = total;
++ timex[3][0] = ops/(1.0e3*total);
++ timex[4][0] = 2.0e3/timex[3][0];
++ timex[5][0] = total/cray;
+
+ fprintf(stderr," times for array with leading dimension of%5d\n",lda);
+ print_time(0);
+@@ -119,28 +119,28 @@
+ matgen(a,lda,n,b,&norma);
+ t1 = second();
+ dgefa(a,lda,n,ipvt,&info);
+- time[0][1] = second() - t1;
++ timex[0][1] = second() - t1;
+ t1 = second();
+ dgesl(a,lda,n,ipvt,b,0);
+- time[1][1] = second() - t1;
+- total = time[0][1] + time[1][1];
+- time[2][1] = total;
+- time[3][1] = ops/(1.0e3*total);
+- time[4][1] = 2.0e3/time[3][1];
+- time[5][1] = total/cray;
++ timex[1][1] = second() - t1;
++ total = timex[0][1] + timex[1][1];
++ timex[2][1] = total;
++ timex[3][1] = ops/(1.0e3*total);
++ timex[4][1] = 2.0e3/timex[3][1];
++ timex[5][1] = total/cray;
+
+ matgen(a,lda,n,b,&norma);
+ t1 = second();
+ dgefa(a,lda,n,ipvt,&info);
+- time[0][2] = second() - t1;
++ timex[0][2] = second() - t1;
+ t1 = second();
+ dgesl(a,lda,n,ipvt,b,0);
+- time[1][2] = second() - t1;
+- total = time[0][2] + time[1][2];
+- time[2][2] = total;
+- time[3][2] = ops/(1.0e3*total);
+- time[4][2] = 2.0e3/time[3][2];
+- time[5][2] = total/cray;
++ timex[1][2] = second() - t1;
++ total = timex[0][2] + timex[1][2];
++ timex[2][2] = total;
++ timex[3][2] = ops/(1.0e3*total);
++ timex[4][2] = 2.0e3/timex[3][2];
++ timex[5][2] = total/cray;
+
+ ntimes = NTIMES;
+ tm2 = 0.0;
+@@ -153,19 +153,19 @@
+ dgefa(a,lda,n,ipvt,&info);
+ }
+
+- time[0][3] = (second() - t1 - tm2)/ntimes;
++ timex[0][3] = (second() - t1 - tm2)/ntimes;
+ t1 = second();
+
+ for (i = 0; i < ntimes; i++) {
+ dgesl(a,lda,n,ipvt,b,0);
+ }
+
+- time[1][3] = (second() - t1)/ntimes;
+- total = time[0][3] + time[1][3];
+- time[2][3] = total;
+- time[3][3] = ops/(1.0e3*total);
+- time[4][3] = 2.0e3/time[3][3];
+- time[5][3] = total/cray;
++ timex[1][3] = (second() - t1)/ntimes;
++ total = timex[0][3] + timex[1][3];
++ timex[2][3] = total;
++ timex[3][3] = ops/(1.0e3*total);
++ timex[4][3] = 2.0e3/timex[3][3];
++ timex[5][3] = total/cray;
+
+ print_time(1);
+ print_time(2);
+@@ -174,41 +174,41 @@
+ matgen(aa,ldaa,n,b,&norma);
+ t1 = second();
+ dgefa(aa,ldaa,n,ipvt,&info);
+- time[0][4] = second() - t1;
++ timex[0][4] = second() - t1;
+ t1 = second();
+ dgesl(aa,ldaa,n,ipvt,b,0);
+- time[1][4] = second() - t1;
+- total = time[0][4] + time[1][4];
+- time[2][4] = total;
+- time[3][4] = ops/(1.0e3*total);
+- time[4][4] = 2.0e3/time[3][4];
+- time[5][4] = total/cray;
++ timex[1][4] = second() - t1;
++ total = timex[0][4] + timex[1][4];
++ timex[2][4] = total;
++ timex[3][4] = ops/(1.0e3*total);
++ timex[4][4] = 2.0e3/timex[3][4];
++ timex[5][4] = total/cray;
+
+ matgen(aa,ldaa,n,b,&norma);
+ t1 = second();
+ dgefa(aa,ldaa,n,ipvt,&info);
+- time[0][5] = second() - t1;
++ timex[0][5] = second() - t1;
+ t1 = second();
+ dgesl(aa,ldaa,n,ipvt,b,0);
+- time[1][5] = second() - t1;
+- total = time[0][5] + time[1][5];
+- time[2][5] = total;
+- time[3][5] = ops/(1.0e3*total);
+- time[4][5] = 2.0e3/time[3][5];
+- time[5][5] = total/cray;
++ timex[1][5] = second() - t1;
++ total = timex[0][5] + timex[1][5];
++ timex[2][5] = total;
++ timex[3][5] = ops/(1.0e3*total);
++ timex[4][5] = 2.0e3/timex[3][5];
++ timex[5][5] = total/cray;
+
+ matgen(aa,ldaa,n,b,&norma);
+ t1 = second();
+ dgefa(aa,ldaa,n,ipvt,&info);
+- time[0][6] = second() - t1;
++ timex[0][6] = second() - t1;
+ t1 = second();
+ dgesl(aa,ldaa,n,ipvt,b,0);
+- time[1][6] = second() - t1;
+- total = time[0][6] + time[1][6];
+- time[2][6] = total;
+- time[3][6] = ops/(1.0e3*total);
+- time[4][6] = 2.0e3/time[3][6];
+- time[5][6] = total/cray;
++ timex[1][6] = second() - t1;
++ total = timex[0][6] + timex[1][6];
++ timex[2][6] = total;
++ timex[3][6] = ops/(1.0e3*total);
++ timex[4][6] = 2.0e3/timex[3][6];
++ timex[5][6] = total/cray;
+
+ ntimes = NTIMES;
+ tm2 = 0;
+@@ -219,22 +219,22 @@
+ tm2 = tm2 + second() - tm;
+ dgefa(aa,ldaa,n,ipvt,&info);
+ }
+- time[0][7] = (second() - t1 - tm2)/ntimes;
++ timex[0][7] = (second() - t1 - tm2)/ntimes;
+ t1 = second();
+ for (i = 0; i < ntimes; i++) {
+ dgesl(aa,ldaa,n,ipvt,b,0);
+ }
+- time[1][7] = (second() - t1)/ntimes;
+- total = time[0][7] + time[1][7];
+- time[2][7] = total;
+- time[3][7] = ops/(1.0e3*total);
+- time[4][7] = 2.0e3/time[3][7];
+- time[5][7] = total/cray;
++ timex[1][7] = (second() - t1)/ntimes;
++ total = timex[0][7] + timex[1][7];
++ timex[2][7] = total;
++ timex[3][7] = ops/(1.0e3*total);
++ timex[4][7] = 2.0e3/timex[3][7];
++ timex[5][7] = total/cray;
+
+ /* the following code sequence implements the semantics of
+- the Fortran intrinsics "nint(min(time[3][3],time[3][7]))" */
++ the Fortran intrinsics "nint(min(timex[3][3],timex[3][7]))" */
+
+- kf = (time[3][3] < time[3][7]) ? time[3][3] : time[3][7];
++ kf = (timex[3][3] < timex[3][7]) ? timex[3][3] : timex[3][7];
+ kf = (kf > ZERO) ? (kf + .5) : (kf - .5);
+ if (fabs((double)kf) < ONE)
+ kflops = 0;
+@@ -256,9 +256,9 @@
+ print_time (row)
+ int row;
+ {
+-fprintf(stderr,"%11.2f%11.2f%11.2f%11.0f%11.2f%11.2f\n", (double)time[0][row],
+- (double)time[1][row], (double)time[2][row], (double)time[3][row],
+- (double)time[4][row], (double)time[5][row]);
++fprintf(stderr,"%11.2f%11.2f%11.2f%11.0f%11.2f%11.2f\n", (double)timex[0][row],
++ (double)timex[1][row], (double)timex[2][row], (double)timex[3][row],
++ (double)timex[4][row], (double)timex[5][row]);
+ }
+
+ /*----------------------*/
+@@ -893,8 +893,6 @@
+ struct rusage ru;
+ REAL t ;
+
+-void getrusage();
+-
+ getrusage(RUSAGE_SELF,&ru) ;
+
+ t = (REAL) (ru.ru_utime.tv_sec+ru.ru_stime.tv_sec) +
diff --git a/benchmarks/linpack-bench/pkg/DESCR b/benchmarks/linpack-bench/pkg/DESCR
new file mode 100644
index 00000000000..948be490455
--- /dev/null
+++ b/benchmarks/linpack-bench/pkg/DESCR
@@ -0,0 +1,14 @@
+Translated to C by Bonnie Toy 5/88
+
+LINPACK is a collection of Fortran subroutines that analyze and solve
+linear equations and linear least-squares problems. The package solves
+linear systems whose matrices are general, banded, symmetric indefinite,
+symmetric positive definite, triangular, and tridiagonal square. In
+addition, the package computes the QR and singular value decompositions of
+rectangular matrices and applies them to least-squares problems. LINPACK
+uses column-oriented algorithms to increase efficiency by preserving
+locality of reference.
+
+LINPACK was designed for supercomputers in use in the 1970s and early
+1980s. LINPACK has been largely superceded by LAPACK, which has been
+designed to run efficiently on shared-memory, vector supercomputers.
diff --git a/benchmarks/linpack-bench/pkg/PLIST b/benchmarks/linpack-bench/pkg/PLIST
new file mode 100644
index 00000000000..0bc91017276
--- /dev/null
+++ b/benchmarks/linpack-bench/pkg/PLIST
@@ -0,0 +1,3 @@
+@comment $NetBSD: PLIST,v 1.1.1.1 2001/04/27 22:29:40 jtb Exp $
+bin/linpackd
+bin/linpacks