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.