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, CSE305
Lecture 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 here
Class 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 here
Gradebook: 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: Textbook: Lin and Snyder, chapter 2
    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: Textbook: Lin and Snyder, chapters 3-4
    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: Brad's slides: Click here.

  • 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
    Discussion: We will be discussing Making Sense of Performance in Data Analytics Frameworks, by Kay Ousterhout, Ryan Rasti, Sylvia Ratnasamy, Scott Shenker, and Byung-Gon Chun, 12th USENIX Symposium on Networked Systems Design and Implementation (NSDI), May 2015.
    Slides: Click here. Brad's slides can be found above, under lecture 5.

  • Class #8 (May 19 May 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