Parallel Programming Fall 2020

Course Description

Parallel computing is found everywhere in modern computing. Multi-core CPUs and GPUs, supercomputers, and even mobile devices such as smartphones all provide ways to efficiently utilize parallel processing on these architectures and devices. The goal of this course is to provide an introduction to the foundations of parallel programming and to consider the performance gains and trade-offs involved in implementing and designing parallel computing systems. Specifically, this course will place an emphasis on concepts related to parallel programming on multicore processors. Programming exercises and projects will be implemented using the Go programming language.

The following information below about the course is subject to change.


Course Staff

Instructor

Lamont Samuels
Email: lamonts@cs.uchicago.edu
Office: Remote for the Quarter
Office hours: Tuesdays and Thursdays 4:00pm-5:00pm CT. Check Piazza for signup

TA

Joe Nave
Email: Contact on Piazza
Office hours: Saturdays 2:00pm-4:00pm CT. Check Piazza for signup

Course Information

Lectures Online videos will be posted on Wednesday evenings
Discussions Monday 5:30pm–6:30pm CT, (Zoom meetings)
Communication All forms of communication such as important class announcements, general discussion, course material, etc. will be done on Piazza.

With the transition to online learning for Fall 2020, it is crucial that you regulary check Piazza. You are required to check it at least twice a day! Piazza is also the best place to get help quickly. The TA's and I will monitor Piazza as frequently as possible and often be able to answer immediately. Students are encouraged to help their peers on Piazza by contributing when it is convenient.

Textbook This course will not have a required textbook; although, for those students who may find it helpful to know the topics we will dicuss each week, readings will come from the text:

  • The Art of Multiprocessor Programming by Maurice Herlihy and Nir Shavit
and will be shown on the course schedule. Along with these readings and the lecture notes, students may find the following references helpful in understanding the course material:
  • An Introduction to Parallel Programming by Peter S. Pacheco
  • The Go Programming Language by Alan A. A. Donovan and Brian W. Kernighan
Course Software Golang 1.15: https://golang.org/dl/

Git: http://git-scm.com/downloads/

Visual Studio Code (Text editor suggestion, not required): https://code.visualstudio.com

GoLand (IDE suggestion, not required): https://www.jetbrains.com/go/

Getting Help I will be available during office hours. The pace of this course is rapid,
so please email me or come to office hours if you feel you're falling behind or need help.

Course Content

Topics that will be explored in the course will include (but not limited to) the following:

A detailed description of when each topic will be discussed is on the course schedule page.


Course Content Distribution (Fall 2020)

As we transition to online learning for Fall 2020, the way in which lecture material and course content will be delivered will change. The course lectures will be provided in two ways:


Coursework

The course will include weekly homework, one exam, and projects. The weekly assignments will contain practice problems to help enforce the concepts learned during a lecture. The projects provide the opportunity to apply the skills you learned to develop systems that can benefit from parallelization. Potential project domains could include: AI and machine learning, computer graphics, cryptocurrency technologies, scientific visualization, etc.

Please look at the assignment page to check the assigned and due dates for each problem set and project.

Late submissions

All students may use up to two 24-hour extensions for the assignments during the quarter. These extensions are all-or-nothing: you cannot use a portion of an extension and have the rest “carry over” to another extension. If extraordinary circumstances (illness, family emergency, etc.) prevent a student from meeting a deadline, the student must inform their instructor before the deadline. You cannot use an extension for the last project! Please note that having a heavy workload in a given week does not qualify as an extraordinary circumstance. The purpose of the two extensions is precisely to give you some flexibility in weeks when you are busier than usual.

Regrades

We sometimes make mistakes, and are happy to review any grading decision that you feel is unfair or unjustified. However, it is also your responsibility to make these requests in a timely manner. Requests for regrades must be submitted no later than one week after a graded piece of work is returned to you. After that time, we will not consider any requests for regrades, regardless of whether the regrade request is reasonable and justified.

Process of Submitting a Regrade Request
  1. Post a private message on Piazza to all instructors.
  2. Make sure the subject states "Regrade Request for HW #N or Project #N", where N is the project or homework number.
  3. Regrade requests must be submitted on Piazza. No other form of requests (e.g., email) will be considered.
Please note that there is no timeline for processing regrade requests. However, you regrade request will be handled before the end of the quarter.

NOTE : The assigned and due dates for homework and projects are subject to change with notice.


Exams

There will be one exam in this course. The exam will be a mixture of coding exercises and short-answer questions. You will be given 4 days to complete the online exam.
Exam Length Exam Timeframe
Quarter Exam 90 minutes Thursday November 19th 12:00pm CT - Monday November 23rd 12:00pm CT (Week 8)

The exact details about how this exam will be adminstered will come as we approach the exam date.

Missed exams and late registrant policy

There are no make-up exams in this class. There also will not be any earlier exams taken unless due to extraordinary circumstances such as an medical emergency.


Grade Evaluation

The final grade is determined as follows:
Weight
Homework 30%
Projects 50%
Quarter Exam 20%

Grading Scale

Grades are not curved in this class. The follwing is set of grading boundaries for this course:


Policies

Academic Honest

You must adhere to The University of Chicago and the Masters Program in Computer Science policy on academic honesty: The universitys' and programs' rules have the final say in all cases, but the following rules of thumb summarize honesty as it pertains to this course:

To expand on the second rule, sharing completed or partially completed work in advance of its deadline in any way, including posting to the Internet, is expressly forbidden. We take academic honestly seriously and dishonest behavior will result in serious consequences.

Zoom guidelines

We will be using Zoom in this class. We expect your interactions via Zoom to be consistent with an in-person class experience. Respect the people you’re working with. Enter the Zoom meetings muted if possible (unfortunately, it will not be possible if you’re calling in), and unmute to speak. Raise your hand if you’d like to speak. [There’s a “Raise Hand” button on the participant page.] If your background is unusually noisy, use the chat channel instead of unmuting. We strongly encourage you to have your camera on during our Zoom sessions, but we’ll understand if some of you prefer to keep your video off.

Note that you can set your name in your Zoom profile, so you don’t have to go with whatever was assigned. We encourage you to include your pronouns in your name (if so, please include them after your last name).

Our Zoom class meetings will be recorded and saved to the cloud to allow students in this class to review the discussion, and especially to allow students who can’t participate the opportunity to benefit from class. We will not make these recordings available to anyone but class participants, we will not make them available after the quarter, and students will not be allowed to save copies. However, we have no way to guarantee that students will follow this policy. If you have FERPA concerns, please mask yourself accordingly, e.g., by turning off video and using an alias.

Diversity statement

The University of Chicago is committed to diversity and rigorous inquiry that arises from multiple perspectives. We concur with that commitment and also believe that we have the highest quality interactions and can creatively solve more problems when we recognize and share our diversity. We thus expect to maintain a productive learning environment based upon open communication, mutual respect, and non-discrimination. We view the diversity that students bring to this class as a resource, strength and benefit. It is our intent to present materials and activities that are respectful of diversity: gender, sexuality, disability, socioeconomic status, ethnicity, race, religious background, and immigration status. Any suggestions as to how to further such a positive and open environment in the class will be appreciated and given serious consideration. If you have a preferred name different from what appears on the class roster, or preferred gender pronouns you would like us to use, please let us know.

Accessibility

The University of Chicago is committed to ensuring equitable access to our academic programs and services. Students with disabilities who have been approved for the use of academic accommodations by​ ​Student Disability Services​ ​(SDS) and need a reasonable accommodation(s) to participate fully in this course should follow the procedures established by SDS for using accommodations. Timely notifications are required in order to ensure that your accommodations can be implemented. Please meet with me to discuss your access needs in this class after you have completed the SDS procedures for requesting accommodations.

Phone: (773) 702-6000
Email: ​disabilities@uchicago.edu

COVID-19 Policies

UChicago Health Pact

All students on campus are required to adhere to the guidelines in the UChicago Health Pact in order to promote a safe environment in the classroom.

Reporting COVID-19 Related Concerns

Any concerns over inappropriate PPE usage, physical distancing, cleaning/disinfection, or other COVID-19 related public health concerns should be directed to​ ​UCAIR​. If there is an emergency, call 773-702-8181 or dial 123 on any campus phone.

Reporting COVID-19 Exposure or a Confirmed Case

If you were potentially exposed to COVID-19 or your COVID-19 test results come back positive, reach out immediately to​ ​C19HealthReport@uchicago.edu​.

Recording and Deletion Policies for Academic Year 2020-1

The Recording and Deletion Policies for the current academic year can be found in the Student Manual under ​ ​Petitions, Audio & Video Recording on Campus.

Attendance

Students who have been exposed to or who are experiencing symptoms of COVID-19 should contact​ ​UChicago Student Wellness​ ​immediately to be tested, and reach out to their area Dean of Students to request accommodations for classes until:

Credits

Course description originally written by David MacQueen and slightly modified by Lamont Samuels

I would also like to thank, J. Alex Halderman, for allowing me to adapt his web site design for this course.