CS 213 Multiprocessor Architecture and Programming, Fall 2021

Time: Monday and Wednesday 5:00 pm to 6:20 pm
Office hours: by appointment
Instructor: Elaheh Sadredini, elaheh@cs.ucr.edu

Location: Materials Science and Engineering, Room 003

Course Overview

The inevitable and rapidly growing adoption of multi-core parallel architectures within a processor chip by all of the computer industry pushes explicit parallelism to the forefront of computing for all applications and scales, and makes the challenge of parallel programming and system understanding all the more crucial. This course is designed to build a strong understanding of the fundamentals of the architecture of parallel computers and the tradeoffs made in their design. We will examine how architectures are designed to exploit different types of parallelism. We will study multi-core architectures, parallel memory systems, cache coherence in shared-memory architectures, memory consistency, vector architectures, dataflow machines, interconnection networks, and also programming models deployed on parallel machines (e.g., message passing, data-parallel, and shared memory models).

Course Prerequisite(s)

CS 203 or consent of instructor

Textbooks and Reading Material

The following books could be useful as supplements to lectures. However, they are not required.

◆ “Parallel Computer Architecture: A Hardware/Software Approach” by Culler, Singh, and Gupta.

◆ “Principles and Practices of Interconnection Networks” by Dally and Towles.

◆ “Computer Architecture: A Quantitative Approach” by Hennesssy and Patterson.

Grading and Policies

Grading Breakdown

- Homework assignments (two): 20%

- Programming assignments (two): 40%

- Quizzes (six): 30%

	 - Quizzes will be taken throughout the course. 
	 - We will have quizzes on eLearn (Canvas). 
	 - The lowest score will be dropped. 

- Paper presentation (one): 10%

- Bonus points for in-class activities: 10%

	 - For in-class activities, we require each of you to download poll everywhere App and navigate/login to their website during the class.
	 - You must login with UCRNetID@ucr.edu.

Class Policies

Forum: We will be using Piazza as our class forum, and our primary way of communication outside of class. All general inquiries must be made on Piazza. For group-specific questions or private questions, you can either email me or post a private question on Piazza.

Late submission: 10% penalty per day up to 5 days for homworks and programming assigments (no credit after 5 days). We do not accept any late submission for quizzes. You are allowed to skip one of the quizzes with no penalty. Use these freebie prudently. If you choose to submit all the quizzes, the lowest score will be dropped.

Cheating policy: Working with others on assignments is a good way to learn the material and is encouraged. However, there are limits to the degree of cooperation that is permitted. Students may discuss among themselves the meaning of homework problems and possible approaches to solving them. Any written portion of an assignment, however, is to be done strictly on an individual basis. You may not copy from another student or from any other source, and you may not allow another student to copy your work. Exams should be done individually and no collaboration in any form with others are permitted. Any violation of the above is considered to be cheating and will result in a failing grade in the class (no exceptions).

Errors in grading: If you feel there has been an error in how an assignment or test was graded, you have one week from when the assignment is returned to bring it to our attention. You must submit (via email to the instructor) a written description of the problem. We will discuss regrades without receiving an email from you about it first.

Dues: All assignments are due at 11:59pm of the submission deadline.

Grades: Your score will be available on Canvas.

Grading Scale

A+: 96 and above
A: 93-95.9
A-: 90-92.9
B+: 87-89.9
B: 83-86.9
B-: 80-82.9
C+: 77-79.9
C: 73-76.9
C-: 70-72.9
D+: 67-69.9
D: 63-66.9
D-: 60-62.9
F: Below 60

Academic Integrity

Here at UCR we are committed to upholding and promoting the values of the Tartan Soul: Integrity, Accountability, Excellence, and Respect. As a student in this class, it is your responsibility to act in accordance with these values by completing all assignments in the manner described, and by informing the instructor of suspected acts of academic misconduct by your peers. By doing so, you will not only affirm your own integrity, but also the integrity of the intellectual work of this University, and the degree which it represents. Should you choose to commit academic misconduct in this class, you will be held accountable according to the policies set forth by the University, and will incur appropriate consequences both in this class and from Student Conduct and Academic Integrity Programs. For more information regarding University policy and its enforcement, please visit: http://conduct.ucr.edu.

Student Resources

◆ If you need special accomodation, please either contact me or find more information here: "UCR campus resources"

Course Schedule

The following schedule is tentative and is subject to change.

Week Date Topic Slides Recording Note/Due/Assignment
1 Sep. 27

Sep. 29

Parallel Processing Basics

2 Oct. 4

Oct 6
Shared Memory Basics

Memory Organization

Quiz #1, HW1 out
3 Oct. 11

Oct. 13
Programming Models (I)

Programming Models (II)

Quiz #2, Programming Assignment 1 out
4 Oct. 18

Oct. 20
Cache Coherence (I)

Cache Coherence (II)

5 Oct. 25

Oct. 27
Cache Coherence (III)

Shared Memory Synchronization (I)

Not Available

Quiz #3
6 Nov. 1

Nov. 3
Shared Memory Synchronization (II)

Memory Consistency Models (I)

HW2 out
7 Nov. 8

Nov. 10
Memory Consistency Models (II)

Memory Consistency Models (III)

8 Nov. 15

Nov. 17
Interconnection Networks (I)

Interconnection Networks (II)

Quiz #4, Programming Assignment 2 out

9 Nov. 22

Nov. 24
Interconnection Networks (III)

Paper Presentations

Quiz #5

10 Nov. 29

Dec. 1
Paper Presentations

Paper Presentations
Quiz #6

Reading Materials

Topic Readings
Parallel Processing Basics Reading(s):
Book Chapter(s):
  • Parallel Computer Architecture: A Hardware/Software Approach, Chapter 1.
Shared Memory Basics Reading(s):
Book Chapter(s):
Memory Organization Reading(s):
Book Chapter(s):
Programming Models and Architectures
Book Chapter(s):
Cache Coherence Reading(s):
Book Chapter(s):
Shared Memory Synchronization Reading(s):
Book Chapter(s):
Memory Consistency Models Reading(s):
Book Chapter(s):
Interconnection Networks Reading(s):
Book Chapter(s):
Vector, SIMD, and SIMT Processing Reading(s):
Book Chapter(s):
  • Computer Architecture: A Quantitative Approach (5th Ed), Chapter 4 and Appendix G.


WWW Computer Architecture Home Page: a comprehensive guide to research, tools, and general information on computer architecture.