More memory bandwidth testing

From: Brian Whitney (UCSD.EDU!celit!fpssun.fps.com!keeper.fps.COM!keeper)
Date: Wed Oct 02 1991 - 11:39:10 CDT

Hi,

I have found another interesting thing compilers can do to your
new test code and a simple workaround for it.

For some reason (I need to figure out what the compiler did) our
(FPS) compiler interchanged the 60 loop and invalidated the
timings generated. I saw megabytes beyond what the machine is
capable of achieving. So I modified the code to look like this

DO 60 k = 1,ntimes

call dummy2(a,b,c)
t = second(t0)
DO 20 j = 1,n
c(j) = a(j)
20 CONTINUE
t = second(t0) - t
times(1,k) = t

call dummy2(a,b,c)
t = second(t0)
DO 30 j = 1,n
c(j) = 3.0D0*a(j)
30 CONTINUE
t = second(t0) - t
times(2,k) = t

call dummy2(a,b,c)
t = second(t0)
DO 40 j = 1,n
c(j) = a(j) + b(j)
40 CONTINUE
t = second(t0) - t
times(3,k) = t

call dummy2(a,b,c)
t = second(t0)
DO 50 j = 1,n
c(j) = a(j) + 3.0D0*b(j)
50 CONTINUE
t = second(t0) - t
times(4,k) = t
60 CONTINUE

where dummy2 is

SUBROUTINE dummy2(q,r,s)
C .. Scalar Arguments ..
DOUBLE PRECISION q,r,s
C ..
RETURN
END

This caused the compiler to assume I messed with a, b, c before each
call and allowed proper execution.

I am still gather data. I am running on about 10 different types of
machines, so I want to make sure the data is reasonable. (And I am
doing this "on my own", while waiting for compiles.)

Brian Whitney
FPS Computing

This archive was generated by hypermail 2b29 : Tue Apr 18 2000 - 05:23:01 CDT