ORA Benchmark Specifications 1. GENERAL 1.1. Classification ORA is a CPU intensive floating point scientific application fortran program. 1.2 Description ORA traces rays through optical system composed of spherical and plane surfaces. It is used to benchmark computers since 1965. Double precision is necessary on computers with 32 bit word length. Single precision is adequate on computers with 48 bit or greater word length. SPEC benchmark will execute in double precision mode. 1.3 Source/Author Sun Microsystems sponsors this benchmark to SPEC. The Opti- cal Research Associates (ORA) produced a sanitized version of their proprietary geometric ray tracing benchmark. ORA is willing to make this version become publicly available pro- vided it is accepted as a SPEC benchmark. This version is similar to the original application, except that certain propietary algorithmic insights are sanitized by ORA. Darryl Gustafson (818-795-9101) Optical Research Associates (ORA) 550 North Rosemead Blvd. Pasadena, California 91107. 1.4 Version/Date Benchmark Version 1.1 7/26/89 (Modified for SPEC). Timing commented, Iteration count increased. Checksum modified. Checksum validation test added to verify correct execution of the benchmark. 1.5 Other Information This benchmark runs on all Sun machines, DECstation 3100, and MIPS M2000. Hevay duty fortran library usage. Please email nvc@sun.com to report problems or to request infor- mation. 2. PERFORMANCE 2 2.1. Metrics The metric used is the elapsed (real) time as output by bin/time. This time is very nearly equal to the CPU time (where CPU time is the sum of "user" and "sys" times), thereby proving that virtually no I/O is performed. 2.2. Elapsed Time Run-time on a SparcStation 1 is about 700 seconds (your time will vary). The SPEC reference time (to 3 sig. fig.) is 7420 seconds. 2.3. Reports The output of /bin/time is directed to a file called results. The output of the ORA is directed to a file called ora.out. The ORA should be run five times to minimize measurement variations. 2.4 Additional Performance Considerations Variations of the elapsed time between runs should not be more than 5% under normal circumstances. This benchmark should be run on an idle machine or one in single-user mode since elapsed time may be highly sensitive to other activities on the machine. 3. SOFTWARE 3.1 Language The ORA is implemented in fortran. 3.2 Operating System The benchmark runs on a variety of UNIX-based systems. Author's documentation suggests that it runs on VAX-VMS. 3.3 Portability The benchmark runs on both 4.2 BSD and System V based machines. No OS dependencies exist. ORA is easy to port (15 minutes on Sun-4). 3.4 Vectorizability/Multi-Processor Issues Don't Know 3.5 Miscellaneous Software None needed for execution of the benchmark. 3.6 Known Bugs None. 3 3.7 Additional Software Considerations None. 4. HARDWARE 4.1 Memory The performance of this benchmark is not memory depen- dent. It runs on 4 MB systems. ORA requires: text data bss dec hex 98304 16384 11968 126656 1eec0 virtual memory and less than 128KB of disk space. 4.2 Disks No special requirements. 4.3 Communication None. 4.4 Special Hardware None. 4.5 Additional Hardware Considerations None 5. OPERATIONAL 5.1 Disk Space Total disk space required is < 200 KB. Size of executable is about 127 KB. 5.2 Installation Retrieve "ora" directory using shar or tar (or appropri- ate utilities). No special installation procedures re- quired. 5.3 Execution Compile at the highest level of optimization possible. A sample Makefile is supplied. To execute use the script "Run" supplied, which takes as an optional parameter the number of runs of the benchmark required (the default be- ing 5). The script executes the following command for each iteration: /bin/time ora 1> ora.out 2>> results 5.4 Correctness Verification 4 The program internally validates the computational results. The out.ora should be compared with the sup- plied sample output file "verify-output", e.g. % diff your-results verify-output 5.5 Additional Operational Considerations 5.6 Sample Run If the program output is directed to standard-output, the output would be as follows : % /bin/time ora Number of iterations: 456000 Check sum = 0.81868919E-02 STOP: NORMAL 762.1 real 757.1 user 0.4 sys