next up previous
Next: Construction of run_x() Up: Loop Parallelization Previous: RandomSync

Actual Loop Parallelization

Now, we are ready to discuss the steps that can be taken by a compiler to exploit implicit loop parallelism in a stride-1 loop of the following form, where we assume that low and high denote two arbitrary loop-invariant expressions of type int:

tabular282

Furthermore, we assume that the compiler has ascertained that loop Li can be executed in either a DOALL- or DOACROSS-like manner, possibly after standard compiler optimizations, loop normalization, and possibly other loop transformations (see e.g. [1, 10, 28, 29, 35, 36, 37] are used to enhance the opportunities of loop parallelization. The parallelization itself proceeds as follows, where, for simplicity, new identifiers that may conflict with other identifiers are denoted with a suffix `_x'. In reality, however, an appropriate suffix must be generated by the compiler.





ajcbik@extreme.indiana.edu