Colorama: Architectural Support for Data-Centric Synchronization ∗
Luis Ceze, Pablo Montesinos, Christoph von Praun† and Josep Torrellas
University of Illinois at Urbana-Champaign
{luisceze, pmontesi, torrellas}@cs.uiuc.edu
http://iacoma.cs.uiuc.edu
†IBM T.J. Watson Research Center
praun@us.ibm.com
ABSTRACT
With the advent of ubiquitous multi-core architectures, a major
challenge is to simplify parallel programming. One way to tame
one of the main sources of programming complexity, namely syn-
chronization, is transactional memory (TM). However, we argue that
TM does not go far enough, since the programmer still needs non-
local reasoning to decide where to place transactions in the code.
A significant improvement to the art is Data-Centric Synchroniza-
tion (DCS), where the programmer uses local reasoning to assign
synchronization constraints to data. Based on these, the system au-
tomatically infers critical sections and inserts synchronization oper-
ations.
This paper proposes novel architectural support to make DCS
feasible, and describes its programming model and interface. The
proposal, called Colorama, needs only modest hardware extensions,
supports general-purpose, pointer-based languages such as C/C++
and, in our opinion, can substantially simplify the task of writing
new parallel programs.
1. Introduction
As chip multiprocessors become widespread, there is growing pres-
sure to substantially broaden their parallel application base. Unfor-
tunately, the vast majority of current application programmers find
parallel programming too complex. To effectively utilize the upcom-
ing hardware, we need major breakthroughs that simplify parallel
programming.
Developing a parallel application consists of four steps [15]: de-
composing the problem, assigning the work to threads, orchestrating
the threads, and mapping them to the machine. Orchestration is ar-
guably the most challenging step, as it involves synchronizing the
threads. It is in this area that innovations to simplify parallel pro-
gramming are most urg