Program Demultiplexing

Saisanthosh Balakrishnan, Gurindar S. Sohi
2006 SIGARCH Computer Architecture News  
We present Program Demultiplexing (PD), an execution paradigm that creates concurrency in sequential programs by "demultiplexing" methods (functions or subroutines). Call sites of a demultiplexed method in the program are associated with handlers that allow the method to be separated from the sequential program and executed on an auxiliary processor. The demultiplexed execution of a method (and its handler) is speculative and occurs when the inputs of the method are (speculatively) available,
more » ... ich is typically far in advance of when the method is actually called in the sequential execution. A trigger, composed of predicates that are based on program counters and memory write addresses, launches the speculative execution of the method on another processor. Our implementation of PD is based on a full-system execution-based chip multi-processor simulator with software to generate triggers and handlers from an x86program binary. We evaluate eight integer benchmarks from the SPEC2000 suite ⎯programs written in C with no explicit concurrency and/or motivation to create concurrency⎯ and achieve a harmonic mean speedup of 1.8x with our implementation of PD.
doi:10.1145/1150019.1136512 fatcat:l3gxojptmje75ndrzimgefxl7y