Master/Slave Speculative Parallelization
Authors:
Craig Zilles
Department of Computer Science
University of Illinois at Urbana-Champaign
Gurindar Sohi
Computer Sciences Department
University of Wisconsin at Madison
Abstract:
Master/Slave Speculative Parallelization (MSSP) is an
execution paradigm for improving the execution rate of
sequential programs by parallelizing them speculatively for
execution on a multiprocessor. In MSSP, one processor -the
master- executes an approximate version of the program to
compute selected values that the full program’s execution is
expected to compute. The master’s results are checked by
slave processors that execute the original program. This
validation is parallelized by cutting the program’s execution
into tasks. Each slave uses its predicted inputs (as computed
by the master) to validate the input predictions of the next
task, inductively validating the entire execution.
The performance of MSSP is largely determined by the
execution rate of the approximate program. Since
approximate code has no correctness requirements (in
essence it is a software value predictor), it can be optimized
more effectively than traditionally generated code. It is free
to sacrifice correctness in the uncommon case to maximize
performance in the common case.
A simulation-based evaluation of an initial MSSP
implementation achieves speedups of up to 1.7 (harmonic
mean 1.25) on the SPEC2000 integer benchmarks.
Performance is currently limited by the effectiveness with
which our current automated infrastructure approximates
programs, which can likely be improved significantly.