z-logo
open-access-imgOpen Access
HELIX
Author(s) -
Simone Campai,
Timothy M. Jones,
Glenn Holloway,
Vijay Janapa Reddi,
Gu-Yeon Wei,
David Brooks
Publication year - 2012
Publication title -
digital access to scholarship at harvard (dash) (harvard university)
Language(s) - English
Resource type - Conference proceedings
DOI - 10.1145/2259016.2259028
Subject(s) - computer science , parallel computing , instruction prefetch , spec# , thread (computing) , loop tiling , loop (graph theory) , compiler , automatic parallelization , loop fusion , synchronization (alternating current) , cache , programming language , mathematics , computer network , channel (broadcasting) , combinatorics
We describe and evaluate HELIX, a new technique for automatic loop parallelization that assigns successive iterations of a loop to separate threads. We show that the inter-thread communication costs forced by loop-carried data dependences can be mitigated by code optimization, by using an effective heuristic for selecting loops to parallelize, and by using helper threads to prefetch synchronization signals. We have implemented HELIX as part of an optimizing compiler framework that automatically selects and parallelizes loops from general sequential programs. The framework uses an analytical model of loop speedups, combined with profile data, to choose loops to parallelize. On a six-core Intel® Core i7-980X, HELIX achieves speedups averaging 2.25 x, with a maximum of 4.12x, for thirteen C benchmarks from SPEC CPU2000.

The content you want is available to Zendy users.

Already have an account? Click here to sign in.
Having issues? You can contact us here
Accelerating Research

Address

John Eccles House
Robert Robinson Avenue,
Oxford Science Park, Oxford
OX4 4GP, United Kingdom