Practical parallel and concurrent programming

  • Authors:
  • Caitlin Sadowski;Thomas Ball;Judith Bishop;Sebastian Burckhardt;Ganesh Gopalakrishnan;Joseph Mayo;Madanlal Musuvathi;Shaz Qadeer;Stephen Toub

  • Affiliations:
  • University of California at Santa Cruz, Santa Cruz, CA, USA;Microsoft Research, Redmond, WA, USA;Microsoft Research, Redmond, WA, USA;Microsoft Research, Redmond, WA, USA;University of Utah, Salt Lake City, UT, USA;University of Utah, Salt Lake City, UT, USA;Microsoft Research, Redmond, WA, USA;Microsoft Research, Redmond, WA, USA;Microsoft, Redmond, WA, USA

  • Venue:
  • Proceedings of the 42nd ACM technical symposium on Computer science education
  • Year:
  • 2011

Quantified Score

Hi-index 0.01

Visualization

Abstract

Multicore computers are now the norm. Taking advantage of these multiple cores entails 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. This paper presents 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 graduate special topics courses. We also discuss tradeoffs we made in terms of what to include in course materials.