TY - GEN
T1 - Types, regions, and effects for safe programming with object-oriented parallel frameworks
AU - Bocchino, Robert L.
AU - Adve, Vikram S.
N1 - Funding Information:
This work was supported by the National Science Foundation under grants CCF 07-02724 and CNS 07-20772, and by Intel, Microsoft, and the University of Illinois through UPCRC Illinois. Robert Bocchino is supported by a Computing Innovation Fellowship.
PY - 2011
Y1 - 2011
N2 - Object-oriented frameworks can make parallel programming easier by providing generic parallel algorithms such as map, reduce, or pipeline and letting the user fill in the details with sequential code. However, such frameworks can produce incorrect behavior if they are not carefully used, e.g., if a user-supplied function performs an unsynchronized access to a global variable. We develop novel techniques that can prevent such errors. Building on a language (Deterministic Parallel Java, or DPJ) with an expressive region-based type and effect system, we show how to write a framework API that enables sound reasoning about the effects of unknown user-supplied methods. We also describe novel extensions to DPJ that enable generic types and effects while retaining soundness. We present a formal semantics and soundness properties for the language. Finally, we describe an evaluation showing that our technique can express three parallel frameworks and three realistic parallel algorithms using those frameworks.
AB - Object-oriented frameworks can make parallel programming easier by providing generic parallel algorithms such as map, reduce, or pipeline and letting the user fill in the details with sequential code. However, such frameworks can produce incorrect behavior if they are not carefully used, e.g., if a user-supplied function performs an unsynchronized access to a global variable. We develop novel techniques that can prevent such errors. Building on a language (Deterministic Parallel Java, or DPJ) with an expressive region-based type and effect system, we show how to write a framework API that enables sound reasoning about the effects of unknown user-supplied methods. We also describe novel extensions to DPJ that enable generic types and effects while retaining soundness. We present a formal semantics and soundness properties for the language. Finally, we describe an evaluation showing that our technique can express three parallel frameworks and three realistic parallel algorithms using those frameworks.
UR - http://www.scopus.com/inward/record.url?scp=79961154270&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=79961154270&partnerID=8YFLogxK
U2 - 10.1007/978-3-642-22655-7_15
DO - 10.1007/978-3-642-22655-7_15
M3 - Conference contribution
AN - SCOPUS:79961154270
SN - 9783642226540
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 306
EP - 332
BT - ECOOP 2011 - Object-Oriented Programming - 25th European Conference, Proceedings
T2 - 25th European Conference on Object-Oriented Programming, ECOOP 2011
Y2 - 25 July 2011 through 29 July 2011
ER -