
Introduction
The job of the performance farmer is to carry out simulation runs of a number of processes on a number of cache configuations. The number of processes and cache configurations can become large and so it becomes hard to do by hand. The performance farmer automates the process and utilises the power of networked computing by handing off processing tasks to other machines on the network. This has the result of speeding up the entire task of creating simulation results for a large number of variable parameters.Operating The Performance Farmer
Installing The Performance Farmer
The performance farmer is written in Java and so to use it you must have a recent version of the Java runtime system installed. Once this is achieved, you should be able to sucessfully issue the following command :Customizing The Performance Farmer Behaviour
The behaviour of the performance farmer is changed by the use of the command line options shown below :| Switch | Default Value | Resulting Behaviour |
| Specify a file from which the command line arguments should be read. This file takes the form of a standard Java properties file and is useful where the command line is very long or needs to be reused in some way. | ||
| Specify a file to read from instead of standard input. | ||
| Specify a file to write to instead of standard output. | ||
| Specifies the classpath to be used by the machine instances spawned to perform processing. | ||
| This flag decides if the performance generator will delete any previous performance files that it finds or if they will be left in place to be appended to. | ||
| This is the directory that performance results are dumped into. The name of the performance file is the result of performanceDirectory + processName + cacheName. | ||
| This is the directory housing the compiled code for the processes. | ||
| Specifies the name of a remote machine that can be used for running jobs on. The machine name may have to be fully qualified with its domain and should also be able to accept rsh jobs [this may require being added to rhosts ?] | ||
| Specifies the name of a process to run. The name should be a readable, compiled program file in the directory given in processDirectory. | ||
| Any special command line options to be added when running this process should be declared here. | ||
| Specifies an identifier used to represent a cache configuration on which each process is simulated. | ||
| Used to specify the command line options to set up the related cache configuration. | ||
| Print the help screen. |
Performance Farmer Script Files
The performance farmer can be controlled directly from the command line but a more common way of running the system is to create a script file to perform simulation of a given experiment. This script file can then be reused and altered at a later date.The script file format uses the same notation as the command line options but is in the form of a standard Java properties file. The process of generating a script for the performance farmer can be semi-automated by using the script generator. An example script is shown below :
classpath=.:/home/pgrad/page/solaris/bin.java:/home/pgrad/page/solaris/bin.java/cup.10g:/home/pgrad/page/solaris/bin.java/jlex.123:/home/pgrad/page/solaris/work/predict/dan performanceDelete=true performanceDirectory=/home/pgrad/page/solaris/pub/ processDirectory=/home/pgrad/page/solaris/work/predict/dan/machine/programs/ machine0Name=kaula machine1Name=wanana machine2Name=igloo process0Name=sort.insertion.asm process0Options=-spreadsheetPerformance process1Name=sort.bubble.asm process1Options=-spreadsheetPerformance process2Name=sort.selection.asm process2Options=-spreadsheetPerformance process3Name=sort.quick.asm process3Options=-spreadsheetPerformance cache0Name=HenksPartitionedCache cache0Options=-dCache machine.cache.HenksPartitionedCache cache1Name=NWaySetAssociativeCache cache1Options=-dCache machine.cache.NWaySetAssociativeCache -dCacheLines 256 -dCacheNway 1
This script file runs four processes on two cache configuration and uses the procesing power of three machines. The output from the performance farmer for this script is shown below :
-- Run Information --------------------------------------------- Run Start : Tue Mar 09 10:25:16 GMT+00:00 1999 Number Of Remote Machines : 3 ---------------------------------------------------------------- [kaula] : has started accepting processes [kaula] : deleting performance file named /home/pgrad/page/solaris/pub/sort.insertion.asm-HenksPartitionedCache [kaula] : starting processing of sort.insertion.asm on cache HenksPartitionedCache [kaula] : spawning process using command line rsh kaula /usr/local/java2/bin/java -classpath .:/home/pgrad/page/solaris/bin.java:/home/pgrad/page/solaris/bin.java/cup.10g:/home/pgrad/page/solaris/bin.java/jlex.123:/home/pgrad/page/solaris/work/predict/dan machine.Machine -dCache machine.cache.HenksPartitionedCache -process0Source /home/pgrad/page/solaris/work/predict/dan/machine/programs/sort.insertion.asm -spreadsheetPerformance -performance /home/pgrad/page/solaris/pub/sort.insertion.asm-HenksPartitionedCache [wanana] : has started accepting processes [wanana] : deleting performance file named /home/pgrad/page/solaris/pub/sort.insertion.asm-NWaySetAssociativeCache [wanana] : starting processing of sort.insertion.asm on cache NWaySetAssociativeCache [wanana] : spawning process using command line rsh wanana /usr/local/java2/bin/java -classpath .:/home/pgrad/page/solaris/bin.java:/home/pgrad/page/solaris/bin.java/cup.10g:/home/pgrad/page/solaris/bin.java/jlex.123:/home/pgrad/page/solaris/work/predict/dan machine.Machine -dCache machine.cache.NWaySetAssociativeCache -dCacheLines 256 -dCacheNway 1 -process0Source /home/pgrad/page/solaris/work/predict/dan/machine/programs/sort.insertion.asm -spreadsheetPerformance -performance /home/pgrad/page/solaris/pub/sort.insertion.asm-NWaySetAssociativeCache [igloo] : has started accepting processes [igloo] : deleting performance file named /home/pgrad/page/solaris/pub/sort.bubble.asm-HenksPartitionedCache [igloo] : starting processing of sort.bubble.asm on cache HenksPartitionedCache [igloo] : spawning process using command line rsh igloo /usr/local/java2/bin/java -classpath .:/home/pgrad/page/solaris/bin.java:/home/pgrad/page/solaris/bin.java/cup.10g:/home/pgrad/page/solaris/bin.java/jlex.123:/home/pgrad/page/solaris/work/predict/dan machine.Machine -dCache machine.cache.HenksPartitionedCache -process0Source /home/pgrad/page/solaris/work/predict/dan/machine/programs/sort.bubble.asm -spreadsheetPerformance -performance /home/pgrad/page/solaris/pub/sort.bubble.asm-HenksPartitionedCache [igloo] : finished processing of sort.bubble.asm on cache HenksPartitionedCache [igloo] : deleting performance file named /home/pgrad/page/solaris/pub/sort.bubble.asm-NWaySetAssociativeCache [igloo] : starting processing of sort.bubble.asm on cache NWaySetAssociativeCache [igloo] : spawning process using command line rsh igloo /usr/local/java2/bin/java -classpath .:/home/pgrad/page/solaris/bin.java:/home/pgrad/page/solaris/bin.java/cup.10g:/home/pgrad/page/solaris/bin.java/jlex.123:/home/pgrad/page/solaris/work/predict/dan machine.Machine -dCache machine.cache.NWaySetAssociativeCache -dCacheLines 256 -dCacheNway 1 -process0Source /home/pgrad/page/solaris/work/predict/dan/machine/programs/sort.bubble.asm -spreadsheetPerformance -performance /home/pgrad/page/solaris/pub/sort.bubble.asm-NWaySetAssociativeCache [wanana] : finished processing of sort.insertion.asm on cache NWaySetAssociativeCache [wanana] : deleting performance file named /home/pgrad/page/solaris/pub/sort.selection.asm-HenksPartitionedCache [wanana] : starting processing of sort.selection.asm on cache HenksPartitionedCache [wanana] : spawning process using command line rsh wanana /usr/local/java2/bin/java -classpath .:/home/pgrad/page/solaris/bin.java:/home/pgrad/page/solaris/bin.java/cup.10g:/home/pgrad/page/solaris/bin.java/jlex.123:/home/pgrad/page/solaris/work/predict/dan machine.Machine -dCache machine.cache.HenksPartitionedCache -process0Source /home/pgrad/page/solaris/work/predict/dan/machine/programs/sort.selection.asm -spreadsheetPerformance -performance /home/pgrad/page/solaris/pub/sort.selection.asm-HenksPartitionedCache [kaula] : finished processing of sort.insertion.asm on cache HenksPartitionedCache [kaula] : deleting performance file named /home/pgrad/page/solaris/pub/sort.selection.asm-NWaySetAssociativeCache [kaula] : starting processing of sort.selection.asm on cache NWaySetAssociativeCache [kaula] : spawning process using command line rsh kaula /usr/local/java2/bin/java -classpath .:/home/pgrad/page/solaris/bin.java:/home/pgrad/page/solaris/bin.java/cup.10g:/home/pgrad/page/solaris/bin.java/jlex.123:/home/pgrad/page/solaris/work/predict/dan machine.Machine -dCache machine.cache.NWaySetAssociativeCache -dCacheLines 256 -dCacheNway 1 -process0Source /home/pgrad/page/solaris/work/predict/dan/machine/programs/sort.selection.asm -spreadsheetPerformance -performance /home/pgrad/page/solaris/pub/sort.selection.asm-NWaySetAssociativeCache [igloo] : finished processing of sort.bubble.asm on cache NWaySetAssociativeCache [igloo] : deleting performance file named /home/pgrad/page/solaris/pub/sort.quick.asm-HenksPartitionedCache [igloo] : starting processing of sort.quick.asm on cache HenksPartitionedCache [igloo] : spawning process using command line rsh igloo /usr/local/java2/bin/java -classpath .:/home/pgrad/page/solaris/bin.java:/home/pgrad/page/solaris/bin.java/cup.10g:/home/pgrad/page/solaris/bin.java/jlex.123:/home/pgrad/page/solaris/work/predict/dan machine.Machine -dCache machine.cache.HenksPartitionedCache -process0Source /home/pgrad/page/solaris/work/predict/dan/machine/programs/sort.quick.asm -spreadsheetPerformance -performance /home/pgrad/page/solaris/pub/sort.quick.asm-HenksPartitionedCache [wanana] : finished processing of sort.selection.asm on cache HenksPartitionedCache [wanana] : deleting performance file named /home/pgrad/page/solaris/pub/sort.quick.asm-NWaySetAssociativeCache [wanana] : starting processing of sort.quick.asm on cache NWaySetAssociativeCache [wanana] : spawning process using command line rsh wanana /usr/local/java2/bin/java -classpath .:/home/pgrad/page/solaris/bin.java:/home/pgrad/page/solaris/bin.java/cup.10g:/home/pgrad/page/solaris/bin.java/jlex.123:/home/pgrad/page/solaris/work/predict/dan machine.Machine -dCache machine.cache.NWaySetAssociativeCache -dCacheLines 256 -dCacheNway 1 -process0Source /home/pgrad/page/solaris/work/predict/dan/machine/programs/sort.quick.asm -spreadsheetPerformance -performance /home/pgrad/page/solaris/pub/sort.quick.asm-NWaySetAssociativeCache [igloo] : finished processing of sort.quick.asm on cache HenksPartitionedCache [igloo] : finished accepting processes [kaula] : finished processing of sort.selection.asm on cache NWaySetAssociativeCache [kaula] : finished accepting processes [wanana] : finished processing of sort.quick.asm on cache NWaySetAssociativeCache [wanana] : finished accepting processes
Dan Page, page@cs.bris.ac.uk, James Irwin, jimbob@cs.bris.ac.uk, Henk Muller, Henk.Muller@bristol.ac.uk, David May, David.May@bristol.ac.uk. Last modified on Friday 6 August 1999 at 14:19. © 1999 University of Bristol

