Practical parallel and concurrent programming

Caitlin Sadowski, Thomas Ball, Judith Bishop, Sebastian Burckhardt, Ganesh Gopalakrishnan, Joseph Mayo, Madanlal Musuvathi, Shaz Qadeer, Stephen Toub
2011 Proceedings of the 42nd ACM technical symposium on Computer science education - SIGCSE '11  
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
more » ... rmance 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,à 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.
doi:10.1145/1953163.1953222 dblp:conf/sigcse/SadowskiBBBGMMQT11 fatcat:rt5w4rw6v5hjtoovlv5ywlo6i4