Object-oriented frameworks can make parallel programming easier by providing generic parallel algorithms such as map, reduce, or scan, 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 a framework designer can use to 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 en...
Streaming APIs are becoming more pervasive in mainstream Object-Oriented programming languages and p...
With the spread of multicore processors, it is increasingly necessaryfor programmers to write parall...
Compilers that can type check compilation units in parallel can make more efficient use of multi-cor...
This thesis presents a new, Java-based object-oriented parallel language called Deterministic Paral...
Abstract. When using today’s common shared-memory parallel pro-gramming models, subtle errors can le...
In this paper, we present the first full regions-and-effects inference algorithm for explicitly para...
We describe a type and effect system for ensuring deterministic semantics in a concurrent object-ori...
Recent research efforts have developed sophisticated type systems for eliminating unwanted interfere...
The session-typed programming language Session Java (SJ) has proved to be an effective tool for dist...
We examine the problem of providing a parallel programming model that guarantees deterministic seman...
The proliferation of shared mutable state in object-oriented programming complicates software develo...
In today’s widely used parallel programming models, subtle programming errors can lead to unintende...
The principal premise of this paper is that as a field, we do not currently have a suitable conceptu...
Compilers that can type check compilation units in parallel can make more efficient use of multi-cor...
We present a generic framework to transform a single-threaded operational semantics into a semantics...
Streaming APIs are becoming more pervasive in mainstream Object-Oriented programming languages and p...
With the spread of multicore processors, it is increasingly necessaryfor programmers to write parall...
Compilers that can type check compilation units in parallel can make more efficient use of multi-cor...
This thesis presents a new, Java-based object-oriented parallel language called Deterministic Paral...
Abstract. When using today’s common shared-memory parallel pro-gramming models, subtle errors can le...
In this paper, we present the first full regions-and-effects inference algorithm for explicitly para...
We describe a type and effect system for ensuring deterministic semantics in a concurrent object-ori...
Recent research efforts have developed sophisticated type systems for eliminating unwanted interfere...
The session-typed programming language Session Java (SJ) has proved to be an effective tool for dist...
We examine the problem of providing a parallel programming model that guarantees deterministic seman...
The proliferation of shared mutable state in object-oriented programming complicates software develo...
In today’s widely used parallel programming models, subtle programming errors can lead to unintende...
The principal premise of this paper is that as a field, we do not currently have a suitable conceptu...
Compilers that can type check compilation units in parallel can make more efficient use of multi-cor...
We present a generic framework to transform a single-threaded operational semantics into a semantics...
Streaming APIs are becoming more pervasive in mainstream Object-Oriented programming languages and p...
With the spread of multicore processors, it is increasingly necessaryfor programmers to write parall...
Compilers that can type check compilation units in parallel can make more efficient use of multi-cor...