Parasol Compilers: Hybrid Analysis
Hybrid Analysis: How it Works
Generation of Run-time Tests and Organization of Parallel Code

Run-time PDAG Evaluation

PDAGs are translated into Fortran code through a syntax-directed translation. They can be evaluated before the loop under analysis in inspector-executor mode, or during a speculative parallel execution of the loop. In the inspector-executor mode, the PDAGs are separated into a cascade of tests of increasing complexity.
The outer loop can be parallelized if the read from WORK is covered by the two conditional writes. Corresponding PDAG. Generated test code. The simple condition is executed first. If successful, the more complex test is avoided.


Organization of Parallel Code

We generate a parallel version for each loop that is (1) worth parallelizing and (2) cannot be proven sequential at compile-time. In addition to dependence tests, we use PDAGs to express privatization validity conditions. In order to remove certain dependences, we perform static and dynamic reduction and privatization, including copy-in and last value assignment, as well as induction variable detection and substitution and pushback sequence parallelization.


HA: How It Works

Site Map