Developing parallel software using current tools can be challeng-ing. Even experts find it difficult to reason about the use of locks and often accidentally introduce race conditions and deadlocks into parallel software. OoOJava is a compiler-assisted approach that leverages developer annotations along with static analysis to provide an easy-to-use deterministic parallel programming model. OoOJava extends Java with a task annotation that instructs the com-piler to consider a code block for out-of-order execution. OoOJava executes tasks as soon as their data dependences are resolved and guarantees that the execution of an annotated program preserves the exact semantics of the original sequential program. We have implemented OoOJava and achie...
We discuss how Java annotations can be used to provide the meta information needed to automatically ...
The performance of parallel code significantly depends on the parallel task granularity (PTG). If th...
This thesis describes techniques for defining independent tasks in Java programs forparallelization....
Developing parallel software using current tools can be challenging. Developers must reason carefull...
We present Dynamic Out-of-Order Java (DOJ), a dynamic paral-lelization approach. In DOJ, a developer...
Abstract—Many existing sequential components, libraries, and applications will need to be re-enginee...
Method speculation of object-oriented programs attempts to exploit method-level parallelism (MLP) by...
Multi-core processors are nowadays standard in servers, desktop computers, and mobile devices. To ma...
Languages allowing explicitly parallel, multithreaded programming (e.g. Java and C#) need to specify...
The Java programming language has a number of features that make it attractive for writing high-qual...
Threading and concurrency are crucial to building high-performance Java applications -- but they ha...
As mainstream hardware moves to multicore processors, programmers will be forced to write multithrea...
This paper discusses the use of optimistic execution as a mechanism for parallelizing sequential obj...
In the era of future embedded systems the designer is confronted with multi-processor systems both f...
Streaming APIs are becoming more pervasive in mainstream Object-Oriented programming languages. For ...
We discuss how Java annotations can be used to provide the meta information needed to automatically ...
The performance of parallel code significantly depends on the parallel task granularity (PTG). If th...
This thesis describes techniques for defining independent tasks in Java programs forparallelization....
Developing parallel software using current tools can be challenging. Developers must reason carefull...
We present Dynamic Out-of-Order Java (DOJ), a dynamic paral-lelization approach. In DOJ, a developer...
Abstract—Many existing sequential components, libraries, and applications will need to be re-enginee...
Method speculation of object-oriented programs attempts to exploit method-level parallelism (MLP) by...
Multi-core processors are nowadays standard in servers, desktop computers, and mobile devices. To ma...
Languages allowing explicitly parallel, multithreaded programming (e.g. Java and C#) need to specify...
The Java programming language has a number of features that make it attractive for writing high-qual...
Threading and concurrency are crucial to building high-performance Java applications -- but they ha...
As mainstream hardware moves to multicore processors, programmers will be forced to write multithrea...
This paper discusses the use of optimistic execution as a mechanism for parallelizing sequential obj...
In the era of future embedded systems the designer is confronted with multi-processor systems both f...
Streaming APIs are becoming more pervasive in mainstream Object-Oriented programming languages. For ...
We discuss how Java annotations can be used to provide the meta information needed to automatically ...
The performance of parallel code significantly depends on the parallel task granularity (PTG). If th...
This thesis describes techniques for defining independent tasks in Java programs forparallelization....