title |
---|
ECS201C: Parallel Architectures. Spring 2019 |
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.
Lecture: Cruess 107 10:30 AM - 11:50 AM Tuesdays and Thursdays
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.
Ayaz Akram (yazakram@ucdavis.edu)
Ayaz will be the main point of contact for all assignment related questions and issues.
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 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.
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.
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.
Fill this in.
Category | Percentage |
---|---|
Participation | 10% |
Programming assignments | 35% |
Project presentation | 15% |
Project report | 25% |
Paper reviews | 15% |
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.
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.
More info on projects coming soon.
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 |