Numeric programs, programs which operate on floating-point data and which are commonly written in FORTRAN, are generally considered to contain more parallelism than non-numeric programs. This section examines the parallelism for our three FORTRAN benchmarks and shows that the type of control flow in a program is a more useful indication of the available parallelism. The parallelism measured by our experiments for the FORTRAN benchmarks is shown in Table 3.
The matrix300 and tomcatv programs have much higher parallelism for all of the machine models. From the ORACLE machine, we observe that there is less data dependence in these programs. The CD-MF machine achieves a large fraction of the ORACLE machine parallelism. Because the control flow in these programs is not dependent on the results of the computation, the control dependence analysis exposes parallelism across different levels of nested loops and across outer loops. As a result, speculation is not as important. In comparison to the CD-MF machine, the SP-CD and SP-CD-MF machines only compress the critical path of each inner loop by a small constant factor. Thus it is the data independent control flow that sets these programs apart from the non-numeric programs.
Among the FORTRAN benchmarks, the behavior of spice2g6 is clearly different. The control flow in spice2g6 is highly data dependent, thus causing it to behave like the non-numeric programs in this study. As numeric programs evolve to model more complex phenomena, they are likely to have increasingly complex control flow and data structures. Distinctions based on the source language and type of arithmetic will become less meaningful. Our study suggests that a more relevant characteristic for predicting the parallelism in a program is whether the control flow is data dependent.