Next: The EP benchmark Up: Running the NPB Previous: Running the NPB

Trying the simple way first

Our initial plan was to take the NAS Parallel Benchmark codes ([2]) and run then on the KSR1: First as sequential programs on a single processor, and then the same code compiled as a parallel program running on all processors. By not changing the source code, we would then effectively test the KAP preproceocessor's ability to parallelize sequential Fortran 77 code.

Such an automatic parallel compilation was done by the command

f77 -r8 -kap -para embar.f -lpresto

(Note that the -r8 option is necessary to force double precision numbers to be 8 bytes instead of the default 16 bytes).

The result was discouraging. Most of the 8 benchmark programs ran insignificantly faster on () processors than on one processor, simply because most parts of the programs were not parallelized. Looking at the log-files, it was clear that the main reason for this was that many loops either were not possible to run in parallel as they were written, or that KSR KAP believed it was not safe to do so because of data dependency. The result was really not very surprising, the experiment mainly shows that there is still a long way to go before one can give an old Fortran 77 program to a parallel computer and get it to run with a high degree of parallelism (it is indeed doubtful if this will ever happen).

The next step was then to follow the procedure a scientist or programmer would have to do if she wants to utilize more than one processor: Make changes in the code, add compiler directives etc. Since we had limited time for this project, the simplest benchmark program was chosen for this purpose: The embarrassingly parallel benchmark (EP).

Next: The EP benchmark Up: Running the NPB Previous: Running the NPB