Course Syllabus

CS4230/CS6230: Parallel Programming (Fall 2023)

The course will cover the fundamentals of parallel and high-performance computing, including major factors that affect single-thread performance, parallel programming models for multicore processors, GPUs, and distributed-memory clusters; implementation and performance evaluation of parallel programs.

Credits: 3

Prerequisites: Knowledge of C programming

Text: No textbook; all needed materials will be provided through Canvas.

Grading (CS4230):

  • Assignments:  40% (no dropped assignments)
  • Midterm (Wed, 10/18): 25%
  • Final (Thursday. 12/14 10:30am-12:30pm):  35%

Grading (CS6230):

  • Assignments:  30% (no dropped assignments)
  • Project (can be done individually or in groups of 2): 10%
  • Midterm (Wed, 10/18): 25%
  • Final (Thursday, 12/14 10:30am-12:30pm):  35%

Grading Scale: The standard grading scale will be used (possibly curved upwards)

[100-94] A; (94-90] A-; (90-87] B+; (87-84] B; (84-80] B-; (80-77] C+; (77-74] C; (74-70] C-; (70-67] D+; (67-64] D; (64-60] D-; (60-0] E

Late Policy on Assignments: 10% penalty per day late; cannot submit more than 2 days late. 5 "free-late-day" tokens for the semester for each student.

All homework and programming assignments must be done individually. Programming assignments must be completed using accounts that will be provided for CHPC systems. Group discussion on concepts and general directions for a solution is permissible when working on assignments, but each student is responsible for formulating and writing their own answer. 

Use of generative AI systems like ChatGPT is permitted but must be explicitly acknowledged with explanation on how it was used.

Cheating is: sharing written or electronic work either by copying, retyping, looking at, or supplying a copy. 

Cheating is not: discussing concepts, answering questions about concepts or clarifying ambiguities, or helping someone understand how to use tools and software. Looking at a fellow student's code or having another student look at your code while an assignment is due is considered academic misconduct. 

Cheating is taken very seriously and students must be careful not to collaborate on assignments. Any student found cheating will fail the entire course and receive a misconduct sanction in the School of Computing. A student with two sanctions will no longer be able to take SoC courses. Please read and ensure that you conform to the SoC Policy on Academic Misconduct.

 

Course Outline

Sequence               Topic

  1.                    Cache and Data Locality Analysis
  2.                    Loop Transformations
  3.                    Data Dependence Analysis
  4.                    Shared-Memory Parallel Programming: OpenMP
  5.                    Vectorization
  6.                    Parallel Programming for GPUs: CUDA
  7.                    Parallel Programming with Message Passing: MPI

Tentative Schedule for Assignments

  1. Homework 1 (Cache Basics): Due Friday 9/1, 11:59 pm
  2. Homework 2 (Data Locality Analysis): Due Friday 9/8, 11:59 pm
  3. Homework 3 (Loop Transformations): Due Friday 9/22, 11:59 pm
  4. Homework 4 (Data Dependences): Due Friday 9/29, 11:59 pm
  5. Programming Assignment 1 (OpenMP): Due Monday, 10/16, 11:59 pm
  6. Homework 5 (Vectorization): Due Monday, 10/30, 11:59 pm
  7. Programming Assignment 2 (OpenMP+CUDA): Due Monday, 11/13, 11:59 pm
  8. Programming Assignment 3 (CUDA): Due Wednesday, 11/29, 11:59pm
  9. Programming Assignment 4 (MPI): Due Monday, 12/11, 11:59pm

Office Hours

Instructor Office Hours (MEB 3458): Tue, Wed: 10:30-11:30am

TAs: Saurabh Raje (saurabh.raje@utah.edu), Jinghua Yan (jhyan@cs.utah.edu)

TA Office Hours:

Saurabh Raje: Thu 4-5pm, Fri 4-5pm in MEB 3147

Jinghua Yan: Mon 4-5pm, Fri 10-11am in MEB 3147

 

College of Engineering Guidelines

Information on withdrawing from courses, appealing grades, and more, see the College of Engineering Academic Affairs website.

Students with Disabilities

The University of Utah seeks to provide equal access to its programs, services and activities for people with disabilities. If you will need accommodations in the class, please work with the Center for Disability Services, 162 Union Building, 581-5020 (V/TDD). CDS will work with you and the instructor to make arrangements for accommodations.

Addressing Sexual Misconduct

Title IX makes it clear that violence and harassment based on sex and gender (which Includes sexual orientation and gender identity/expression) is a civil rights offense subject to the same kinds of accountability and the same kinds of support applied to offenses against other protected categories such as race, national origin, color, religion, age, status as a person with a disability, veteran’s status or genetic information. If you or someone you know has been harassed or assaulted, you are encouraged to come speak to the School of Computing Advisors and/or to the Title IX Coordinator in the Office of Equal Opportunity and Affirmative Action, 135 Park Building, 801-581-8365, or the Office of the Dean of Students, 270 Union Building, 801-581-7066. For support and confidential consultation, contact the Center for Student Wellness, 426 SSB, 801-581-7776. To report to the police, contact the Department of Public Safety, 801-585-2677(COPS). More information is available at https://safeu.utah.edu 

University Counseling Services

The University of Utah Counseling Center (UCC) offers brief individual, couples and group counseling, psychiatric medication services and psychological assessment for eligible UU students. Any student who is experiencing adverse stress levels should feel free to contact their course instructors, the School of Computing advisors and staff, or contact the UCC directly. For more information, please call 801-581-6826 or refer to: https://counselingcenter.utah.edu/.

 

Course Summary:

Date Details Due