Functional Programming Perspectives on Concurrency and Parallelism
Speaker: Matthew Fluet, Toyota Technological Institute at Chicago
Location: Warren Weaver Hall 1302
Date: March 4, 2009, 11:30 a.m.
Host: Michael Overton
The trend in microprocessor design toward multicore processors has sparked renewed interest in programming languages and language features for harnessing concurrency and parallelism in commodity applications. Past research efforts demonstrated that functional programming provides a good semantic base for concurrent- and parallel-language designs, but slowed in the absence of widely available multiprocessor machines. I will describe two new functional programming approaches towards concurrency and parallelism, grounded in more recent functional programming research.
In the first half of the talk, I will introduce transactional events, a novel concurrency abstraction that combines first-class synchronous message-passing events with all-or-nothing transactions. This combination enables elegant solutions to interesting problems in concurrent programming. Transactional events have a rich compositional structure, inspired by the use of monads for describing effectful computations in functional programming.
In the second half of the talk, I will introduce the Manticore project, an effort to design and implement a new functional language for parallel programming. Unlike some earlier parallel language proposals, Manticore is a heterogenous language that supports parallelism at multiple levels. I will describe a number ofManticore's notable features, including implicitly-parallel programming constructs (inspired by common functional programming idioms) and a flexible runtime model that supports multiple scheduling disciplines. I'll conclude with future research directions, aiming to combine static and dynamic information for the implementation and optimization of parallel constructs.
Refreshments will be offered starting 15 minutes prior to the scheduled start of the talk.