Scalar vs. parallel optimizations
Michael J. Wolfe · 2018
In the realm of high performance and parallel computers, defining the order in which t o perform program optimizations and the interaction between optimizations is a difficult task. The compiler must perform some tradeoff between different optimizations, in particular trading traditional scalar optimizations against new parallel optimizations. Since the potential performance benefit of parallel optimizations can be a n order of magnitude higher, performing scalar pessimizations (inverting scalar optimizations) t o enable parallel optimizations can be the right overall decision. It is difficult t o treat parallel and scalar optimizations with a single framework, since they deal with different machine abstractions. We also show tha t no fixed ordering of optimizations will find the optimal transformed program; the ordering of optimizations must depend both on the target machine and on the program being compiled.