Seminar Details
Using ownership to reason about inherent parallelism in object-oriented programs
School of Engineering and Computer Science Seminar
Speaker: Andrew Craik
Time:
Thursday 10th September 2009 at 11:00 AM -
11:50 AM
Location:
Seminar Room,
Cotton 341
Abstract
The problem of automatically parallelizing an imperative program has been a long studied problem in the field of computer science, but it is still beyond the current state-of-the-art. With the transition to multi-core processors in consumer computers the need to parallelize a wide-variety of general purpose applications has emerged. Given the significant investment in and experience with imperative programming languages, we are interested in how we can minimally modify these well understood techniques to facilitate reasoning about parallelism. We have chosen to focus on object-oriented programs because the object-orientation provides structure to a program's data which we exploit to abstract the side-effects of computation and so simplify reasoning about data dependencies.
In this talk I will present my approach for abstracting and reasoning about side-effects in the C programming language. I will introduce our framework for abstracting and reasoning about computational side-effects which employs a number of ownership concepts. I will also discuss our results when we used our type system and static analysis to try and detect parallelism and why we have introduced a light-weight runtime system to compliment our static analysis along with discussing how we have managed to minimize the performance overhead of the runtime system. I will briefly discuss our C compiler and how the compiler was extended with ownerships and effect computation. Lastly, I will present our results to date employing this compiler on real-world programs modified with our annotations.
Bio: Andrew Craik is a third-year PhD student from Canada under the supervision of Dr. Wayne Kelly at the Queensland University of Technology, Brisbane, Australia. His thesis is focused on reasoning about parallelism in modern imperative object-oriented languages using ownerships and method effect contracts. He graduated with distinction from the Computer Engineering program at the University of Waterloo in April 2007. During his undergraduate studies he spent a total of 8 months working for IBM's optimizing compiler development team at their Markham Software Labs near Toronto, Canada. This experience inspired his interest in programming languages, compilers, operating systems, and computer architectures.


