The Master/Slave Speculative Parallelization paradigm relies on the use of a highly optimized and mostly correct version of a sequential program, called distilled code, for breaking inter-task dependences. We describe the design and implementation of an optimization framework that can create such distilled code within the context of an MSSP simulator. Our optimizer processes pieces of Alpha machine code called traces and is designed to optimize code while adhering to certain restrictions and requirements imposed by the MSSP paradigm. We describe the specific places where our optimizer is different from that in a compiler and explain how the optimized traces are deployed in the simulator.
"A Task Optimization Framework for MSSP", Anders Alexandersson.
Masters Thesis, Computer Science Dept., University of Illinois at Urbana-Champaign, May 2004