The rule for the SPECfp benchmark is that a compiler is allowed to do pretty much anything it
wants to, as long as that compiler is available to customers and nobody changes the source code at
all. The various Fortran 77/90 MP compilers automatically multithread a program with no user
intervention, so they are legal. You give the compiler the code, completely unchanged, and it
looks to see if there is any possibility of threading it. It is possible to thread 6 of the 14 SPECfp
programs automatically. The results are very impressive (Table 2-1).
Table 2-1. SPECfp95 Results for Alpha 4100 5/466 (SPEC '97)
Number of CPUs
Swim Su2cor Hydro2d
SPECfp 95 is a reasonable set of benchmarks for single-CPU machines, but it does not give a
good picture of the overall performance potential of multiprocessor machines (Figure 2-15). The
SPECrate is intended to demonstrate this potential by allowing the vendor to run as many copies
of the program as desired (e.g., in one test with 30 CPUs, Sun ran 37 copies of each program).
This benchmark does not use the MP compiler.
Figure 2-15. Running SPECrate_fp95 on an SGI Origin/200, 2000 (SPEC '96)
There are currently no Java benchmarks of interest to parallel processing.
Threads allow both concurrent execution in a single address space and parallel execution on
multiple-processor machines, and they also make many complex programs easier to write. Most
programs are simple and fast enough that they don't need threads, but for those programs that do
need them, threads are wonderful.
Search WWH :