[comp.benchmarks] one last calibration note

eugene@eos.arc.nasa.gov (Eugene Miya) (12/22/90)

Two people brought up (regarding compiling my "empty" program
taht a STOP statement is regarded as an executable statement.
TRUE.

I have some familiarity with Fortran compilers from IBM mainframes
to workstations to Crays to some of the Japanese machines.  The issue
of runtime libraries came up.  I want to get to that topic, but
suggestions included:

1) substituting CALL EXIT (non-standard, but has advantages) for STOP.
2) Removing STOP all together
3) Some compilers don't even have PROGRAM statements (guess?)

I won't rerun everything on the HPM, but just to show you
timing an empty command is an exercise left to readers (locating
X-MPs and Y-MPs is part of the exercise).  This is a "within machine"
test.  I borrow the terminology from psychology of a "within-subject"
experiment design.

First:
program empty
stop
end yields:
-rwxr-xr-x   1 eugene   npo       717064 Dec 21 11:11 ef

Second
program empty
call exit
end yields:
-rwxr-xr-x   1 eugene   npo       714064 Dec 21 11:11 e3
(same size at least)

Third:
program empty
end yields:
-rwxr-xr-x   1 eugene   npo       713584 Dec 21 11:11 e2

Fourth (this will not compile on all systems):
end yields
-rwxr-xr-x   1 eugene   npo       713584 Dec 21 16:19 e4

So we can almost conclude the runtime library does make some difference.

Note: no one has remarked about the huge size of the binary.
A VAX C empty program is about 4096 bytes (a BSD block).
Lots of context in a cft77 process, but also a 64-bit word doubles the
number of bytes.

We should discuss the role of looking at object code in benchmarking
some time.  We can't do this for every machine and every compiler.
(cft77 compiler default options, UNICOS 6.0 OS)

--e.n. miya, NASA Ames Research Center, eugene@eos.arc.nasa.gov
  {uunet,mailrus,most gateways}!ames!eugene
  AMERICA: CHANGE IT OR LOSE IT.