[mod.computers.ridge] a benchmark result

info-ridge@ucbvax.UUCP (12/11/85)

A benchmark program was developed by Michael Wolfe and Tom
Macke of Kuck and Associates, Inc. to measure processor speeds
in their particular application environment, which is all integer
oriented. Their paper appeared in SIGPLAN
Notices 20,11 (November 1985). They report the following times 
for various VAX models:

C		CPU times for S1
C	N=	50	100	150	200
C	11/730	2.00	16.31	52.34	2:04.42
C	11/750	0.90	6.86	22.75	1:01.40
C	11/780	0.73	5.62	19.45	45.07
C	11/785*	0.70	5.73	20.06	48.00

C		CPU times for NS1
C	11/730	3.06	36.56	2:10.76	5:22.40
C	11/750	1.40	11.45	45.91	2:10.39
C	11/780	1.03	12.25	45.62	1:55.03
C	11/785*	0.91	7.51	26.73	1:15.05
C
C	*run with f77 compiler; all other times are VMS FORTRAN compiler

They bemoan the fact that the VAX compilers appear to do a poor job of code
optimization. We have run the benchmarks on a Ridge 32, with the 
high-performance CPU, with both the old Ridge FORTRAN compiler (f77) and 
the new one (rf). The program was compiled with and without optimization 
in each case. The results are:

	s1(50)	s1(100)	s1(150)	s1(200)	ns1(50)	ns1(100) ns1(150) ns1(200)
------------------------------------------------------------------------------
f77	1.02	8.27	28.13	66.95	1.09	9.16	 31.42	  75.31
f77 -O	 .26	2.08	 6.98	16.49	 .55	4.56	 15.29	  37.12
rf	 .79	6.42	21.73	51.53	 .97	7.73	 25.72	  60.35
rf -O	 .14	1.18	 3.98	 9.40	 .34	2.60	  8.23    19.05

These results show an almost incredible difference between the VAX and Ridge
performances. The difference is due to the CPU/compiler combination.
The results also show the difference between Ridge's old and
new FORTRAN compilers. 

The actual s1 and ns1 routines of Macke and Wolfe are reproduced below for
reference:

	subroutine s1(a, n)
	integer a(500,500), n
	do 100 i= 1, n
	   do 100 j= i+1,n
	      do 100 k= 1,n
		 l= a(k,i)
		 m= a(k,j)
		 a(k,j)= l+m
100	continue
	end

	subroutine ns1(a,n)
	integer a(500,500), n
	do 200 i= 1,n
	   do 200 j= i+1, n
	      do 200 k= 1,n
		 l= a(i,k)
		 m= a(j,k)
		 a(j,k)= l + m
200	continue
	end