Static Analysis of Dynamic Schedules and Its Application to Optimization of Parallel Programs
Effective optimizations for concurrent programs require the compiler to have detailed knowledge about the scheduling of parallel tasks at run-time. Currently, optimizations for parallel programs must define their own models and analyzes of the parallel constructs used in the source programs. This makes developing new optimizations more difficult and complicates their integration into a single optimizing compiler. The authors investigate an approach that separates the static analysis of the dynamic run-time schedule from subsequent optimizations. They present three optimizations that are based on the information gathered during the schedule analysis. Variants of those optimizations have been described in the literature before, but each work is built upon its own highly specialized analysis.