Guest Speaker
Retrofitting Parallelism into Sequential Programs
Danny Dig
Computer Science
University of Illinois at Urbana-Champaign
Mar 2 2010 3:30PM
480 Dreese Labs
All interested parties are invited to attend.
Refreshments will be served prior to talk.
Abstract:
Parallelizing existing sequential programs to run efficiently on multicores is hard. Several libraries (e.g., TPL, TBB, ForkJoinTask) support writing parallel programs, hiding much of the complexity of writing thread-safe and scalable programs in the library. To use these libraries, programmers still need to reengineer existing code. This is tedious because it requires changing many lines of code, is error-prone because programmers can use the wrong APIs, and is non-trivial because programmers still need to ensure non-interference of parallel constructs.
This talk describes our refactoring toolset that enables programmers to refactor sequential code into parallel code that uses the Java concurrent libraries. Our growing toolset supports data parallelism, task parallelism, and concurrent collections. These automated refactorings do not require any program annotations, yet the transformations span multiple, non-adjacent, program statements. A find-and-replace tool can not perform such transformations, which require control- and data-flow analysis. Empirical evaluation shows that our toolset is useful: it reduces the burden of analyzing and rewriting code, it is fast enough to be used interactively, and it correctly identifies and applies transformations that open-source developers overlooked.
Bio:
Danny Dig is a postdoc and a PI in the Microsoft/Intel funded Universal Parallel Computing Research Center (UPCRC) at Illinois, where he leads research on refactorings for parallelism. He received his PhD from Illinois, where his dissertation won the best PhD thesis award. In 2006 he was awarded the First Prize at the interdisciplinary ACM Student Research Competition Grand Finals. After his PhD he was a postdoc at MIT where he opened the field of interactive refactorings for retrofitting parallelism into sequential programs, before retuning to Illinois. Danny has authored 14 journal and top conference papers and has released 6 software systems, one of which was downloaded over 17,000 times, and others are shipping with the official release of Eclipse, a widely used development environment for Java. Danny started the ACM Workshop on Refactoring Tools, now in its 4th year, and served on the program committees for OOPSLA and several software engineering workshops. More info about his research is available on his homepage.
Host: Atanas Rountev
* Danny Dig is a CSE faculty candidate
