EQNTOTT ------- 1.0: GENERAL 1.1: Classification EQNTOTT is an integer-intensive benchmark. The primary kind of computation performed is sorting. 1.2: Description The benchmark translates a logical representa- tion of a boolean equation to a truth table. 1.3: Source/Author The source is from the Industrial Liason Pro- gram of the University of California at Berkely. 1.4: Version/Date The version used by SPEC is version 9, precise date unknown, but thought to be 1985. 2.0: PERFORMANCE 2.1: Metrics: SPEC uses total elapsed time as reported by the shell, /bin/time, as the performance metric. 2.2: Elapsed time: EQNTOTT runs in under 3 minutes on Apollo's DN10000. The reference time (to 3 sig. fig) is 1100. 2.3: Reports: The benchmark produces a truth table as output. When the benchmark is run, the output is re-directed to a file, so the only visible output is the output from /bin/time. 2.4: Other performance characteristics: EQNTOTT dynamically allo- cates about 1.8 megabytes of memory in 450 calls to the library routine malloc, when run with the int_pri_3.eqn input file. In addition, the benchmark spends nearly 95% of its time in the li- brary routine qsort. 3.0: SOFTWARE 3.1: Language EQNTOTT is written in the C language and requires the YACC parser generator in order to build the executable image. 3.2: Operating System and Portability The program was originally developed under BSD4.2 UNIX and will port easily to other BSD derived versions of UNIX. It ports with some greater difficulty to System V versions. It calls on very few system services so it should port relatively easily to non-UNIX systems that support C. 3.3: Vectorizability, Parallelizability EQNTOTT spends all of its time sorting. To the extent that the host's system sort rou- tine is parallelized, the benchmark will benefit. 4.0 HARDWARE 4.1: Memory EQNTOTT does not page when run on a system with 8 megabytes of physical memory. Although not tested, it probably requires less than 2.5 mega- bytes to run without paging. 4.2: No other special hardware considerations. 5.0 OPERATIONAL 5.1: Disk About 2.5 megabytes of disk are required to hold the source code, the run time files and the executable image. 5.2: Installation EQNTOTT is distributed in the directory eqntott. That directory contains all of the source code, run- time files and a Makefile for building the executable image. There is a README file in the directory that describes how to build and run the benchmark. The Makefile passes CFLAGS to the C compiler and you can specify appropriate flags for your host sys- tem. Since the benchmark uses the shell's time command, there is no timing routine in the source that needs local modification. 5.3: Execution Once the executable image is built, the benchmark is run in the following manner: time eqntott -s -.ioplte int_pri_3.eqn > int_pri_3.new cmp int_pri_3.new int_pri_3.esp If things work properly, the only output produced is the output from 'time'. 5.4: Correctness Verification The 'cmp' command in the Execution section above compares the output against an known good result. No differences should be reported.