Course Syllabus

CS4230/CS6230: Parallel Programming

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:  50% (no dropped assignments)
  • Weekly in-class quizzes (lowest four scores will be dropped): 10%
  • Midterm (Wed, 10/19): 15%
  • Final (Wed., 12/14 10:30am-12:30pm):  25%

Grading (CS6230):

  • Assignments:  40% (no dropped assignments)
  • Project (can be done individually or in groups of 2): 15%
  • Weekly in-class quizzes (lowest three scores will be dropped): 5%
  • Midterm (Wed, 10/19): 15%
  • Final (Wed., 12/14 10:30am-12:30pm):  25%

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. 

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.                    Shared-Memory Parallel Programming: OpenMP
  3.                    Loop Transformations
  4.                    Data Dependence Analysis
  5.                    Vectorization
  6.                    Parallel Programming for GPUs: CUDA
  7.                    Parallel Programming with Message Passing: MPI
  8.                    Advanced Topics (TBD)

Tentative Schedule of Quizzes

  1. Quiz 1 (Cache Basics): Mon. 8/29, in-class
  2. Quiz 2 (Data Locality analysis): Wed. 9/7, in-class
  3. Quiz 3 (OpenMP): Wed. 9/14, in-class
  4. Quiz 4 (OpenMP): Wed. 9/21, in-class
  5. Quiz 5 (Loop Transformations): Wed. 9/28, in-class
  6. Quiz 6 (Data Dependences): Wed. 10/5, in-class
  7. Quiz 7 (Vectorization): Wed. 10/26, in-class
  8. Quiz 8 (GPU-1): Mon. 11/7, in-class
  9. Quiz 9 (GPU-2): Mon. 11/14, in-class
  10. Quiz 10 (MPI-1): Mon. 11/21, in-class
  11. Quiz 11 (MPI-2): Mon. 12/5, in-class

Tentative Schedule for Assignments

  1. Homework 1 (Cache Basics): Wed. 9/7, 11:59 pm
  2. Homework 2 (Data Locality Analysis): Wed. 9/21, 11:59 pm
  3. Programming Assignment 1 (OpenMP): Mon.. 10/17, 11:59 pm (No late submission)
  4. Homework 3 (Loop Transforms & Data Dependences): Fri. 10/7, 11:59 pm
  5. Homework 4 (Vectorization): Wed. 10/26, 11:59 pm
  6. Programming Assignment 2 (Loop Transformations & OpenMP): Fri. 11/4, 11:59 pm
  7. Programming Assignment 5 (CUDA-1): Mon. 11/21, 11:59 pm
  8. Programming Assignment 6 (CUDA-2): Fri. 12/2, 11:59 pm
  9. Programming Assignment 8 (MPI): Fri. 12/9, 11:59 pm
  10. Term Project (CS6230 Only): Wed., 12/21, 11:59pm

Office Hours

Instructor Office Hours (MEB 3458): Mon, Wed: 1:15pm-2pm, Tue. 11am-12:30pm

TAs:  Omid Asudeh (omid.asudeh@utah.edu, Emin Ozturk (emin.ozturk@utah.edu), James Youngblood (u1235424@utah.edu), Bo Zhang (bozhang@sci.utah.edu

TA Office Hours:

Bo: Tue. 3:30-5pm (WEB 3760), Thu. 3:30-5pm (WEB 3760)

Emin: Wed. 3:30-5:00pm (MEB 3445 Inner Room), Fri. 11:30am-1:00pm (MEB 3445 Inner Room)

James: Mon, Wed, Fri @ 9:40-10:40am (CADE Lab).

Omid: Mon. 3:30-5pm (MEB 3445 Inner Room), Thu. 3:30-5pm (MEB 3445 Inner Room)

        Omid's Zoom link:
                 https://utah.zoom.us/j/93993809762

                 Meeting ID: 939 9380 9762
                 Passcode: 507503

Covid

The current university COVID guidelines are found at: https://coronavirus.utah.edu

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/.