Parallelism: Merging Theory and Practice

Multicore computers are now the norm. Taking advantage of multiple cores requires parallel and concurrent programming. There is therefore a pressing need for courses that teach effective programming on multicore architectures. We believe that such courses should emphasize high-level abstractions for performance and correctness and be supported by tools. We present a set of freely available course materials for parallel and concurrent programming, along with a testing tool for performance and correctness concerns called Alpaca (A Lovely Parallelism And Concurrency Analyzer). These course materials can be used for a comprehensive parallel and concurrent programming course, a la carte throughout an existing curriculum, or as starting points for in-depth graduate special topics courses. We also discuss tradeoffs we made in terms of what to include in course materials.

Speaker Details

Thomas Ball is a Principal Researcher at Microsoft Research and manages the Software Reliability Research group (http://research.microsoft.com/srr/), which investigates a variety of techniques for improving software quality, including formal methods, program analysis and automated testing. He completed my Ph.D. in Computer Science from the University of Wisconsin-Madison in 1993, was a researcher at Bell Labs from 1993 to 1999 and has been at Microsoft Research since 1999.

Ganesh L. Gopalakrishnan earned his PhD in Computer Science from Stony Brook University in 1986, joining Utah the same year. He spent a year each at the University of Calgary (1988), visited Stanford University (1995), and at Intel Santa Clara (2002). During his 2009 sabbatical, he helped establish the Center for Parallel Computing at Utah and serves as its Director. He facilitated a pilot offering of Microsoft’s Practical Parallel and Concurrent Programming course at Utah during Fall 2010. His currently active projects are in scalable dynamic verification methods for message passing interface (MPI) programs, symbolic verification methods for GPU kernels, building verification tool integration frameworks, and prototyping formal analysis methods for multicore communication APIs, and also building FPGA based multicore systems including these APIs. He advises many PhD, MS, BS/MS, and BS students on a variety of topics – see http://www.cs.utah.edu/fv. He will serve as PC co-chair for CAV 2011 at Snowbird, UT. He has authored a textbook “Computation Engineering: Applied Automata Theory and Logic,” and over 130 research papers. His research is supported by NSF, Microsoft, and SRC.

Date:
Speakers:
Thomas Ball and Ganesh Gopalakrishnan
Affiliation:
MSR, University of Utah