CS 213 — Multiprocessor Architecture and Programming

Time: Tuesday & Thursday, 5:00 – 6:20 pm

Instructor: Elaheh Sadredini   elaheh@cs.ucr.edu
Office hours: By appointment




Course Overview

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


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 — Culler, Singh, and Gupta.

◆ Principles and Practices of Interconnection Networks — Dally and Towles.

◆ Computer Architecture: A Quantitative Approach — Hennessy and Patterson.

Grading and Policies

Grading Breakdown

Homework assignments (two): 20%

Programming assignments (two): 40%

Paper presentation (one): 10%

Quizzes (six): 30%

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

Bonus points for in-class activities: 10%


Class Policies

Forum: We will be using Slack as our class forum; all general inquiries must be made there. For group-specific or private questions, email me.

Late submission: 10% penalty per day up to 5 days for homeworks and programming assignments (no credit after 5 days). No late submissions for quizzes. You may skip one quiz with no penalty; if you submit all, the lowest score is dropped.

Cheating policy: Discussing problem meaning and approaches is encouraged, but all submitted work must be your own. Exams are strictly individual. Violations result in a failing grade.

Errors in grading: You have one week from return to request a regrade via email with a written description.

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

Grades: Your score will be available on Canvas.



Grading Scale

A+: 96+
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: < 60


Academic Integrity

Here at UCR we are committed to upholding the values of Integrity, Accountability, Excellence, and Respect. As a student in this class, complete assignments as described and report suspected misconduct. Policy details: http://conduct.ucr.edu.


Student Resources

◆ If you need special accommodation, contact me or see: UCR campus resources.

Course Schedule

The following schedule is tentative and is subject to change.


# Date Session Topic Due/Assignment

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), Ch. 4 & App. G.

Papers Presentation

TBA ...

Resources

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