Skip to content
This repository has been archived by the owner on Mar 17, 2021. It is now read-only.

Latest commit

 

History

History
171 lines (120 loc) · 10.4 KB

syllabus.md

File metadata and controls

171 lines (120 loc) · 10.4 KB
title
ECS201C: Parallel Architectures. Spring 2019

ECS 201C: Parallel Architectures

Spring 2019

The goal of this course is to become a better programmer by understanding the underlying system architecture and to get a better understanding of the underlying system architecture by programming the system. This will be a programming-heavy course with about one programming assignment per week (fewer later in the quarter). This is a graduate-level course, so it will be research focused with at least one paper reading per class and culminating in a research project with both a written report and presentations.

Important information

Time and Location

Lecture: Cruess 107 10:30 AM - 11:50 AM Tuesdays and Thursdays

Instructor

Professor Jason Lowe-Power (jlowepower@ucdavis.edu)

Office Hours: 4:00 PM - 6:00 PM Wednesdays, or by appointment.

Office Location: 3049 Kemper Hall

Please suggest a meeting time when you email me for an appointment. You can use my calendar to quickly find a time I am available. It's not guaranteed to be completely up-to-date, but it gives a good starting point.

Teaching Assistant

Ayaz Akram (yazakram@ucdavis.edu)

Ayaz will be the main point of contact for all assignment related questions and issues.

Accommodations

The exam schedule is available on the schedule. Per official UC Davis policy, if you have an accommodation request from the Student Disability Center, or have any conflicts with exam times for religious observances, you must notify me by the fourth class, April 11, 2019.

For each test, quiz, etc. you must reach out to me one week in advance to schedule specific accommodations for that test, quiz, etc.

Academic Misconduct

Academic misconduct is a serious issue. You can find the official UC Davis policy on the Office of Student Support and Judicial Affairs website.

You are expected to cite all of the work you reference. Any ideas that are not specifically yours or generally known (e.g., caches hold data) should have a citation. When in doubt, cite.

Any violations of this policy will result in reporting the violating student(s) to the Office of Student Support and Judicial Affairs. This can result in a 0 on the assignment or an F in the class.

Student Support

As a student you may experience a range of issues that can cause barriers to learning, such as strained relationships, increased anxiety, alcohol/drug problems, feeling down, difficulty concentrating and/or lack of motivation. These mental health concerns or stressful events may lead to diminished academic performance or reduce a student’s ability to participate in daily activities. UC Davis is committed to advancing the mental health and well-being of its students. If you or someone you know is feeling overwhelmed, depressed, and/or in need of support, services are available. You can learn more about the broad range of confidential mental health services available on campus via Student Health and Counseling Services.

You can also contact me during office hours, via email, or by making a separate office hour appointment: jlowepower@ucdavis.edu.

Diversity and Inclusion Statement

In an ideal world, science would be objective. However, much of science is subjective and is historically built on a small subset of privileged voices. In this class, we will make an effort to read papers from a diverse group of scientists, but limits still exist on this diversity. I acknowledge that it is possible that there may be both overt and covert biases in the material due to the lens with which it was written, even though the material is primarily of a scientific nature. Integrating a diverse set of experiences is important for a more comprehensive understanding of science. I would like to discuss issues of diversity in computer science as part of the course from time to time.

Please contact me (in person or electronically) or submit anonymous feedback if you have any suggestions to improve the quality of the course materials. You can send anonymous feedback by filling out this Google form (you do not have to be logged in and your email address is not saved).

Furthermore, I would like to create a learning environment for my students that supports a diversity of thoughts, perspectives and experiences, and honors your identities (including race, gender, class, sexuality, religion, ability, etc.). To help accomplish this:

  • If you have a name and/or set of pronouns that differ from those that appear in your official records, please let me know.
  • If you feel like your performance in the class is being impacted by your experiences outside of class, please don’t hesitate to come and talk with me. You can also submit anonymous feedback (which will lead to me making a general announcement to the class, if necessary, to address your concerns). If you prefer to speak with someone outside of the course, see Student support above.
  • I (like many people) am still in the process of learning about diverse perspectives and identities. If something was said in class (by anyone) that made you feel uncomfortable, please talk to me about it. (Anonymous feedback is always an option.)

As a participant in course discussions, you should also strive to honor the diversity of your classmates.

Online discussions

Fill this in.

Assignments

Grading Breakdown

Category Percentage
Participation 10%
Programming assignments 35%
Project presentation 15%
Project report 25%
Paper reviews 15%

Programming assignments

There will be a set of programming assignments that you will complete throughout the quarter. Each assignment will ask you to write a parallel algorithm for a different architecture or using a different programming model (or both!). You will have about one week to complete each assignment.

Programming assignments will be graded based on a write up, not on whether your code is right or wrong. Each assignment will have 5-10 questions that you will answer about the code and/or its performance.

Links to the assignments will be available as they are prepared.

Paper reviews

Each review should have three short paragraphs as described below. The final point is key and best enables your review to stand out.

  • The first paragraph should be a short summary of the problem the paper attacks and methods used (if any),
  • The second paragraph should be a short summary of the paper's results or key implications,
  • The final paragraph should contain your opinion about what's good and bad about the paper, or a topic/question for lecture

Reviews will be graded with the following rubric:

2 Review includes a complete summary of the paper and includes all three components listed above.
1 Review does not demonstrate that you read the paper (e.g., uses sentences copied from the paper).
0 Did not turn in the review.

In rare cases for an exemplary review you can be awarded 3 points. These "extra credit" points are meant to offset cases of 1's and 0's. To recieve a 3, the review must provide insight beyond the contents of the paper and/or brings in ideas from other reading.

I suggest you create reading groups to discuss the paper between yourselves before writing your reviews. However, your review should be completed individually.

Reviews are due at 7am via Canvas.

Projects

More info on projects coming soon.

Schedule

The following is a preliminary schedule. Dates may change throughout the quarter.

2-Apr Intro
4-Apr Performance
9-Apr Types of parallelism
11-Apr Single Core (201A refresher) MIMD assignment 1 out
16-Apr Parallel CPU architecture intro
18-Apr Memory consistency MIMD assignment due (OMP)
23-Apr Cache coherence
25-Apr Talk
30-Apr Cache coherence MIMD assignment 2 due (C++ threads / locking / lock free)
2-May Distributed computing
7-May Proposal meetings Proposals due
9-May Distributed computing Hadoop assignment due
14-May GPUs
16-May GPUs GPU assignment due
21-May Accelerator intro
23-May Dataflow accelerators
28-May Project meetings Project status report due
30-May Machine learning accelerators Tensorflow assignment due
4-Jun Quantum computing
6-Jun Persistent memory Quantum assignment due
7-Jun Class conference?
13-Jun Final reports due