CSEP 524 Spring 2015 - Parallel Computation (PMP)
News
- Welcome to Spring Quarter!
- Links to previous iterations of this class are available here.
Course Description
Parallel computing is no longer exclusively the domain of those working with large clusters and supercomputers. With the rise of multicore processors, the machines you use everyday at work and home are now parallel computers. In order to take advantage of the opportunities (and understand the challenges) of parallel computing, however, we need to rethink the model in which our programs run. In addition, the rise of big data analytics has led to increasing deployment of clusters designed to analyze large volumes of data in parallel. Programming frameworks such as Hadoop and Spark have arisen to allow programmers to quickly develop parallel analytics applications.
This course will teach students how to reason about, design, and implement programs that run on parallel machines. We will cover a variety of parallel programming models, parallel algorithms, and styles of parallelism. We will also discuss specific parallel languages and frameworks, including frameworks designed for big data analytics.
Course Information
Lectures: Tuesdays 6:30-9:20 pm, CSE305Lecture archives: Click here. We will attempt to make videos of lectures available within a couple days of the lecture whenever possible.
Instructor: Michael ("Mike") Ringenburg, miker[at]cs..., office hours in CSE 278 before class (roughly 5:30-6:20)
TA: Amnon Horowitz, amnonh[at]cs..., office hours TBD
Staff email list: csep524-staff[at]cs...
Textbook: Principles of Parallel Programming, Calvin Lin and Lawrence Snyder
Communications
Class discussion board: click hereClass email list: csep524a_sp15[at]uw...
Email list archives: click here
Grading
The tentaive weighting for purposes of course grading will be as follows (please note that these weights are subject to change):- Project: 100 points (50 points for report, 50 points for presentation)
- Homeworks: 60-80 points
total - Discussion participation: 40 points
Homeworks
Dropbox: Click hereGradebook: View your scores here
- Homework 1. Due: Monday, April 6 at 11:59pm. Submit via the dropbox link above.
- Homework 2. Due: Tuesday, April 14 at 5:00pm. Submit via the dropbox link above.
- Homework 3. Due: Tuesday, April 21 at 5:00pm. Submit via the dropbox link above.
- Homework 4. Due: Wednesday, May 6 at 11:59pm. Submit via the dropbox link above.
- Homework 5. Due: Tuesday, May 12 at 5:00pm. Submit via the dropbox link above.
Project
Information about your final project is now available here!
Lecture Schedule
This tentative schedule will be updated as the quarter progresses. Slides will be posted as they become available. Discussion readings should be done before the associated discussion (in most cases, short reviews of these papers will be due the day before class as part of your homework). Textbook readings can be done at your leisure but may be helpful for some of the homeworks.
- Class #1 (March 31, 2015)
Lecture: Introduction & course administratrivia. Why study parallel computing?
Discussion (short): Student Introductions - who you are, what you do, why you are interested in this class, etc.
Textbook: Lin and Snyder, chapter 1
Slides: Click here. Credit and thanks to the last two instructors of this course, Larry Snyder and Brad Chamberlain, who supplied the slides on which many of these slides were based. - Class #2 (April 7, 2015)
Lecture: parallel architectures; parallel models; memory consistency models
Discussion: We will be discussing the following papers. As part of your homework, you will write short reviews of each:- The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software, Herb Sutter, Dr. Dobb's Journal, March 2005.
- Dark Silicon and the End of Multicore Scaling, Hadi Esmaeilzadeh, Emily Blem, Renée St. Amant, Karthikeyan Sankaralingam, and Doug Burger, International Symposium on Computer Architecture (ISCA) '11, June 2011. (See the wikipedia page for Dennard Scaling if you are not familiar with the term.)
Slides: Click here. Credit and thanks to the last two instructors of this course, Larry Snyder and Brad Chamberlain, who supplied the slides on which many of these slides were based. - Class #3 (April 14, 2015)
Lecture: parallel performance; intro to parallel algorithms
Discussion: Depending on time and interest, we will be discussing one or both of the following topics. Your homework due this week will explore these topics as well:- Parallel machine models: PRAM vs. CTA vs. LogP. You will read about LogP as part of your homework (LogP: Towards a Relasitic Model of Parallel Computation, by David Culler, Richard Karp, David Patterson, Abhijit Sahay, Klaus Eric Schauser, Eunice Santos, Ramesh Subramonian, and Thorsten von Eicken)
- Real-world memory consistency models. You will explore this a bit in your homework. Some possible references include:
- C++11: Foundations of the C++ Concurrency Memory Model, Hans-J. Boehm and Sarita V. Adve
- Java: The Java Memory Model, Jeremy Manson, William Pugh, and Sarita V. Adve
Slides: Click here. Credit and thanks to the last two instructors of this course, Larry Snyder and Brad Chamberlain, who supplied the slides on which many of these slides were based. - Class #4 (April 21, 2015)
Lecture: parallel algorithms and data structures
Discussion: We will be discussing the classic Map-Reduce paper, MapReduce: Simplified Data Processing on Large Clusters, by Jeffrey Dean and Sanjay Ghemawat. You will be reviewing this as part of Homework 3.
Textbook: Lin and Snyder, chapter 5
Slides: Click here. Credit and thanks to the last two instructors of this course, Larry Snyder and Brad Chamberlain, who supplied the slides on which many of these slides were based. - Class #5 (April 28, 2015)
Lecture: Guest Lecture on PGAS (partitioned global address space) and Chapel (a parallel language from Cray) by Chapel technical lead Brad Chamberlain.
Recommended background reading:- A Brief overview of Chapel, Bradford L. Chamberlain
- Partitioned Global Address Space Languages, Mattias De Wael, Stefan Marr, Bruno De Fraine, Tom Van Cutsem, and Wolfgang De Meuter
- Class #6 (May 5, 2015)
Lecture: Parallel language survey
Discussion: We will be discussing Partitioned Global Address Space Languages, by Mattias De Wael, Stefan Marr, Bruno De Fraine, Tom Van Cutsem, and Wolfgang De Meuter.
Textbook: Lin and Snyder, chapters 6-7
Slides: Click here. Thanks to Troy Johnson, Alex Duran, Rajeev Thakur, and Brad Chamberlain. - Class #7 (May 12, 2015)
Lecture:- Mike: Big Data Analytics Part I
- Brad: Chapel Part II
Slides: Click here. Brad's slides can be found above, under lecture 5. - Class #8 (
May 19May 21, 2015)
Lecture: Big Data Analytics Part II: Analytics in Apache Spark
Slides: Click here.
A few early project presentations: Schedule here - Class #9 (May 26, 2015)
Project presentations: Schedule here - Class #10 (June 2, 2015)
Project presentations: Schedule here
Computer Science & Engineering University of Washington Box 352350 Seattle, WA 98195-2350 (206) 543-1695 voice, (206) 543-2969 FAX
Comments to adminanchor