EXPERIMENTAL EVALUATION
We evaluate our approach on a 32-core Intel Xeon system with four eight-core X7560 CPUs. We implemented our
speculation scheme in MIT Cilk version 5.4.6. All benchmarks were compiled with GNU gcc version 4.1.2 and optimization ’-O2’. Table 1 lists the benchmarks used along
with their problem sizes and single-threaded execution time.
To balance the amount of concurrency exposed and the performance achieved by the sequential kernel, recursive programs typically switch from a parallel to an optimized serial
implementation once a particular problem size cut-off (base
case) is reached. We implement efficient tiled versions of the
benchmarks. For each benchmark, we choose the tile/block
size that achieved the best performance for Cilk. Read/write
instrumentation is added at the tile granularity to reduce instrumentation overhead. We observe no additional overhead
due to instrumentation. Speedups are plotted against this
instrumented baseline Cilk version.
As seen in Table 1, LCS computes the longest common
subsequence. RNA solves the RNA folding problem. Seidel2d implements the two-dimensional iterative Gauss-Seidel
algorithm. Wave2d is representative of a typical wavefront
algorithm. These benchmarks are candidates that exhibit
constrained expression of concurrency in recursive-style programming. To evaluate the overhead of various speculation
schemes in the presence of abundant concurrency, we select a three-dimensional wavefront example (Wave3d) with
a sufficiently large problem size.
For each benchmark, we compare the performance of the
baseline Cilk implementation with four speculation schemes:
(1) always, a scheme that always speculates when a sync is
about to be suspended without relying on the predictor; (2)
pred, the single-step speculator based on the predictor; (3)
deep, the deep speculation scheme; and (4) para, the parallel
speculation scheme. The latter three schemes also include
the delayed speculation optimization. We benchmark each
scheme separately. Note that the schemes themselves are
inclusive