Next: Results
Up: CS-740 Project Report Exploring
Previous: Different Schemes
We used several large programs with varied memory access
patterns to study cache behavior. These programs are
standardized benchmark programs from the SPECint 95
benchmark suite and the Mediabench[7] benchmark suite.
We also used
traces of some real programs in C++ and Java[8] to give a flavor
of demands made by real-world programs.
We chose these programs to give us a stable and large
testing suite, which could reproducibly give us a series of memory
accesses. These are not real applications, but they have
been designed to mimic real applications in their
characteristics. Also, these are large programs, and stress
the cache system, with their large number of memory
accesses.
Among the benchmark suites, the programs, for which we present the results later,
are described below:
- IJPeg
This is a image compression program. It is taken from the
SPEC 95 integer benchmarks. It performs a series of
compressions at differing quality levels over a variety of
images. The workload is taken from the behavior of someone
seeking the best trade-off between space and time for a
variety of images.
- GO
This is a program simulating the playing of the game GO. It
has been taken from the SPEC 95 integer benchmarks. It plays
the game of GO against itself, using pattern matching
algorithms to search the search space. It is known not to
use the cache very much, but performs initialization of a
large data chunk.
- EPIC
This is a experimental image data compression program. It is
taken from the Mediabench benchmark suite. It uses
algorithms specialized for images, such as wavelet
decomposition to perform image compression.
- N-Queens
This benchmark solves the N-Queens problem. This famous
problem calculates the number of ways of placing N queens on
a N by N chess board in non-attacking positions. Here N has
been taken to be 10.
- Matrix multiplication
This multiplies two N by N matrices together. The matrices
are of size 64 by 64, and have random entries.
- Cellular Automaton
This program simulates a 1 dimensional cellular
automaton. The automaton has 1000 cells and is simulated for
100 time steps.
- Quicksort
This program sorts a random array of 50,000 elements.
- Word frequency counter
This program counts the frequency of the words appearing in
its input, which is the Book of Revelation according to St
John from the online version of the King James Bible.
- Linpack
This is a port of the Linpack benchmark, a solver of
simultaneous linear equations.
- Java Compiler
This program is the Sun Java compiler, as a part of JDK 1.0.2.
- JavaCC Generated parser
This is a Java parser, generated by the JavaCC parser-generator.
- Kawa
This is a Scheme interpreter, written in Java. The program
executed calculates the first 100 digits of Pi, using the
Spigot algorithm .
Next: Results
Up: CS-740 Project Report Exploring
Previous: Different Schemes
Amit K Manjhi
2001-12-04