Version 3.6 -- 5/15/91  19:30:16

================================================================
To use the new BYTE Unix Benchmarks:

   make 
   Run

================================================================
You may run individual benchmark programs and groups of programs.
There are also a few options.

  Run [<bench> ...] [<group> ...] [-qvd]

	-q	quiet		no output to standard out
	-v	verbose		extra output to standard out
	-d	debug		Run is displayed as it is run

     GROUP	BENCHMARK	EXPLANATION		SOURCE
     --------   -----------	--------------------	-------------
     index                      only those need for 
                                generating the BYTE
                                index
		double		double arithmetic	src/arith.c
		dhry2		dhrystone 2 w/o regs	src/dhry_1.c
							src/dhry_2.c
							src/dhry.h
		execl		execl call		src/execl.c
							src/big.c
		fstime		filesystem throughput	src/fstime.c
		pipe		pipe throughput		src/pipe.c
		shell   	load system with	pgms/multi.sh
				  concurrent shell	pgms/tst.sh
				  scripts		src/looper.c
     arithmetic
		arithoh		arithmetic overhead 	src/arith.c
		register	register arithmetic	src/arith.c
		short		short arithmetic	src/arith.c
		int		int arithmetic		src/arith.c
		long		long arithmetic		src/arith.c
		float		float arithmetic	src/arith.c
		double		double arithmetic	src/arith.c
     system
		syscall		system call overhead	src/syscall.c
		pipe		pipe throughput		src/pipe.c
		context1	pipe context switch	src/context1.c
		spawn		process creation	src/spawn.c
		execl		execl call		src/execl.c
		fstime		filesystem throughput	src/fstime.c
     misc
		C		compile and link	/bin/cc
							src/looper.c
		dc		calculations with dc	testdir/dc.dat
							src/looper.c
		hanoi		recursion 		src/hanoi.c
							src/looper.c
     dhry
		dhry2		dhrystone 2 w/o regs	src/dhry_1.c
							src/dhry_2.c
							src/dhry.h
		dhry2reg	dhrystone 2 with regs	src/dhry_1.c
							src/dhry_2.c
							src/dhry.h
		shell   	load system with	pgms/multi.sh
				  concurrent shell	pgms/tst.sh
				  scripts
                        ** Most C programs also include src/timeit.c

===================== RELEASE NOTES =====================================

========================  May 91 ==========================
This is version 3. This set of programs should be able to determine if
your system is BSD or SysV. (It uses the output format of time (1)
to see. If you have any problems, contact me (by email,
preferably): ben@bytepb.byte.com

---

The document doc/bench.doc describes the basic flow of the
benchmark system. The document doc/bench3.doc describes the major
changes in design of this version. As a user of the benchmarks,
you should understand some of the methods that have been
implemented to generate loop counts:

Tests that are compiled C code:
  The function wake_me(second, func) is included (from the file
timeit.c). This function uses signal and alarm to set a countdown
for the time request by the benchmark administration script
(Run). As soon as the clock is started, the test is run with a
counter keeping track of the number of loops that the test makes.
When alarm sends its signal, the loop counter value is sent to stderr
and the program terminates. Since the time resolution, signal
trapping and other factors don't insure that the test is for the
precise time that was requested, the test program is also run
from the time (1) command. The real time value returned from time
(1) is what is used in calculating the number of loops per second
(or minute, depending on the test).  As is obvious, there is some
overhead time that is not taken into account, therefore the
number of loops per second is not absolute. The overhead of the
test starting and stopping and the signal and alarm calls is
common to the overhead of real applications. If a program loads
quickly, the number of loops per second increases; a phenomenon
that favors systems that can load programs quickly. (Setting the
sticky bit of the test programs is not considered fair play.)

Test that use existing UNIX programs or shell scripts:
  The concept is the same as that of compiled tests, except the
alarm and signal are contained in separate compiled program,
looper (source is looper.c). Looper uses an execvp to invoke the
test with its arguments. Here, the overhead includes the
invocation and execution of looper.

--

The index numbers are generated from a baseline file that is in
pgms/index.base. You can put tests that you wish in this file.
All you need to do is take the results/log file from your
baseline machine, edit out the comment and blank lines, and sort
the result (vi/ex command: 1,$!sort). The sort in necessary
because the process of generating the index report uses join (1).
You can regenerate the reports by running "make report."

--

========================= Jan 90 =============================
Tom Yager has joined the effort here at BYTE; he is responsible
for many refinements in the UNIX benchmarks.

The memory access tests have been deleted from the benchmarks.
The file access tests have been reversed so that the test is run
for a fixed time. The amount of data transfered (written, read,
and copied) is the variable. !WARNING! This test can eat up a
large hunk of disk space.

The initial line of all shell scripts has been changed from the
SCO and XENIX form (:) to the more standard form "#! /bin/sh".
But different systems handle shell switching differently. Check
the documentation on your system and find out how you are
supposed to do it. Or, simpler yet, just run the benchmarks from
the Bourne shell. (You may need to set SHELL=/bin/sh as well.)

The options to Run have not been checked in a while. They may no
longer function. Next time, I'll get back on them. There needs to
be another option added (next time) that halts testing between
each test. !WARNING! Some systems have caches that are not getting flushed
before the next test or iteration is run. This can cause
erroneous values. 

========================= Sept 89 =============================
The database (db) programs now have a tuneable message queue space.
queue space. The default set in the Run script is 1024 bytes.
Other major changes are in the format of the times. We now show
Arithmetic and Geometric mean and standard deviation for User
Time, System Time, and Real Time. Generally, in reporting, we
plan on using the Real Time values with the benchs run with one
active user (the bench user). Comments and arguments are requested.

contact: BIX bensmith or rick_g
