In this book we include numerous tables showing the performance of individual algorithms on sample data sets. We used two different machines in this process:
We used a reasonable "home office" personal computer. This computer had a Pentium(R) 4 CPU 2.8Ghz with 512 MB of RAM.
We had access to a set of computers configured as part of a Linux cluster. This computer had a 2x dual-core AMD Opteron™ Processor with 2.6 Ghz speed and 16 gigabytes of Random Access Memory (RAM).
The high-end computer was made available because of work supported by the National Science Foundation under Grant No. 0551584. Any opinions, findings, and conclusions or recommendations expressed in this book are those of the authors and do not necessarily reflect the views of the National Science Foundation.
We refer to these computers by name in the tables of this book.
Assume we wanted to benchmark the addition of the numbers from 1 to n. An experiment is designed to measure the times for n=1,000,000 to n=5,000,000 in increments of one million. Because the problem is identical for n and doesn't vary, we execute for 30 trials to eliminate as much variability as possible.
The hypothesis is that the time to complete the sum will vary directly in relation to n. We show three programs that solve this problem—in Java, C, and Scheme—and present the benchmark infrastructure by showing how it is used.
Java Benchmarking Solutions
On Java test cases, the current system time (in ...