A practical run-time technique for exploiting loop-level parallelism
In order to exploit potential parallelism of loops, in which the array access patterns cannot be analyzed at compile-time, parallelizing compilers must rely on the run-time dependence analysis techniques. The LRPD test is noted in this field for its applicability. It assumes full parallelism and executes speculatively, then examines the correctness of parallel execution after loop termination. We extended the concept and developed a practical run-time technique, called the speculative parallelization with new technology (SPNT) test, to further exploit loop-level parallelism. Two main characteristics make the SPNT test distinguished. The first is improving the success rate of speculative parallelization by eliminating all cross-iteration data dependences except the cross-processor flow dependences. The second is reducing the failure penalty by aborting the speculative parallel execution immediately once a cross-processor flow dependence is detected during the execution. Our experimental results on shared-memory parallel machines HP SPP2000 and ALR QUAD6 prove the high effectiveness of the SPNT test.