Title
Isolation for nested task parallelism
Abstract
Isolation--the property that a task can access shared data without interference from other tasks--is one of the most basic concerns in parallel programming. Whilethere is a large body of past work on isolated task-parallelism, the integration of isolation, task-parallelism, and nesting of tasks has been a difficult and unresolved challenge. In this pa- per, we present a programming and execution model called Otello where isolation is extended to arbitrarily nested parallel tasks with irregular accesses to heap data. At the same time, no additional burden is imposed on the programmer, who only exposes parallelism by creating and synchronizing parallel tasks, leaving the job of ensuring isolation to the underlying compiler and runtime system. Otello extends our past work on Aida execution model and the delegated isolation mechanism [22] to the setting of nested parallelism. The basic runtime construct in Aida and Otello is an assembly: a task equipped with a region in the shared heap that it owns. When an assembly A conflicts with an assembly B, A transfers--or delegates--its code and owned region to a carefully selected assembly C in a way that will ensure isolation with B, leaving the responsibility of re-executing task A to C. The choice of C depends on the nesting relationship between A and B.We have implemented Otello on top of the Habanero Java (HJ) parallel programming language [8], and used this implementation to evaluate Otello on collections of nested task-parallel benchmarks and non-nested transactional benchmarks from past work. On the nested task-parallel benchmarks, Otello achieves scalability comparable to HJ programs without built-in isolation, and the relative overhead of Otello is lower than that of many published data-race detection algorithms that detect the isolation violations (but do not enforce isolation). For the transactional benchmarks, Otello incurs lower overhead than a state-of-the-art software transactional memory system (Deuce STM).
Year
DOI
Venue
2013
10.1145/2509136.2509534
OOPSLA
Keywords
Field
DocType
nested parallelism,nested task parallelism,non-nested transactional benchmarks,delegated isolation mechanism,built-in isolation,assembly b,assembly c,parallel task,nested task-parallel benchmarks,past work,isolation violation,contention,isolation
Software transactional memory,Programming language,Computer science,Task parallelism,Parallel computing,Compiler,Heap (data structure),Parallel programming model,Execution model,Scalability,Runtime system
Conference
Volume
Issue
ISSN
48
10
0362-1340
Citations 
PageRank 
References 
2
0.37
19
Authors
5
Name
Order
Citations
PageRank
Jisheng Zhao148024.34
Roberto Lublinerman21477.50
Zoran Budimlić329728.95
Swarat Chaudhuri498167.68
Vivek Sarkar54318409.41