<b>SPEC</b> JVM Client98 Help How to Create Configuration Files


These are the files that are analogous to CPU95's config files, and which show up in the report setup screen when running the benchmark. Entering more complete and specific information in these files will save typing in the setup screen, and help ensure correct reporting of system configurations in reporting pages.

The simplest way to make a few configuration files is by copying an existing file and modifying it with a text editor. This is particularly useful when you have many systems to enter with only a few changes between different ones.

You can also use the pure Java "Config" program to create a configuration file for you based on what it can discover about your system. Here are the options to that program:

 

$ . shrc
$ java spec.reporter.vendor.Config -?
Usage: java spec.reporter.vendor.Config [-v vendor] [-s server] [-p port] [-S 
SPECdir]
Create client & server property files to document a configuration
vendor - Specify OS & h/w, e.g. SolarisSparc
server - Name of server where benchmarks are installed.
         Default localhost
         If specified, creates server file instead of client file
port -   Server's http port number. Default 80
         If specified, creates server file instead of client file
SPECdir - Directory where SPEC software is installed, if not the
         current directory.

In typical use you would redirect its' output into a file, and then edit that file to fill in additional fields. E.g., to create a client file:

 

$ java spec.reporter.vendor.Config >client.sun.ultra1-170

To create a server file, you need to run the program on the server.

 

$ rlogin myserver
Password: 
Last login: Wed May 20 11:13:35 from fuzja
Sun Microsystems Inc. SunOS 5.6 Generic August 1997
myserver$ cd /mnt/4/www/spec/java/run
myserver$ . shrc
myserver$ java spec.reporter.vendor.Config -s myserver >server.sun.u2-2170
$ grep webServer server.sun.u2-2170
spec.server.sw.webServer=JavaWebServer/1.1

Vendor specific classes are able to run system commands to determine more information about a system than is available in pure Java. For example, the SolarisSparc class is able to determine the processor, clock rate, memory, cache organization, and OS version. It also determines the IP address and hostid which are not printed on the SPEC reporting page, but may be retained in the results file where they could be of great value for your own internal documentation of test results. E.g.,

 

$ java spec.reporter.vendor.Config -v SolarisSparc >client.sun.u1-170
$ diff client.sun.ultra1-170 client.sun.u1-170
14,22c14,22
< spec.client.hw.vendor=REQUIRED
< spec.client.hw.vendor.url=REQUIRED
< spec.client.hw.model=REQUIRED
< spec.client.hw.processor=REQUIRED
< spec.client.hw.MHz=REQUIRED
< spec.client.hw.ncpu=REQUIRED
< spec.client.hw.memory=REQUIRED
< spec.client.hw.primaryCache=REQUIRED
< spec.client.hw.secondaryCache=REQUIRED
---
> spec.client.hw.vendor=Sun Microsystems  sun4u
> spec.client.hw.vendor.url=http://www.sun.com/
> spec.client.hw.model='Sun Ultra 1 SBus (UltraSPARC 167MHz)'
> spec.client.hw.processor='SUNW,UltraSPARC'
> spec.client.hw.MHz=167
> spec.client.hw.ncpu=1
> spec.client.hw.memory=64
> spec.client.hw.primaryCache=16KBI + 16KBD
> spec.client.hw.secondaryCache=512KB(I+D)
25c25
< spec.client.hw.fileSystem=REQUIRED
---
> spec.client.hw.fileSystem=UFS
38c38
< spec.client.sw.OS=REQUIRED
---
> spec.client.sw.OS=Solaris 5.7
54a55
> spec.other.hostid=80ef84ab
71a73
> spec.other.hostIP=119.146.95.82

If you want to write your own vendor specific configuration class, all you need to do is implement the VendorConfig interface, which defines a method returning a Properties object containing all the configuration properties you discover about one of your systems. For the most extensive example, see SolarisSparc.java where I run several Solaris commands and also encode the names and web sites of a number of vendors of Solaris based systems other than Sun, e.g. Auspex, Fujitsu, HAL, etc. For the simplest example, see HPUX.java, where I just run the uname command.