Parallel Programming (CIS-4230) Home Page

This is the home page for Peter Chapin's CIS-4230 course notes for the Spring 2024 semester. Here you will find electronic versions of class slides, homework assignments, program samples, and links to other references of interest. If you are a student taking Parallel Programming, you should bookmark this page.

Topics

Slides

Homework

  1. Homework #1. Introduction. In this assignment, you will set up your environment on Lemuria and experiment with a simple parallel program that adds elements in an array. Due: 2024-02-02
  2. Homework #2. Gaussian Elimination. In this assignment, you will parallelize the Gaussian elimination program. Due: 2024-02-09
  3. Homework #3. Barriers and Thread Pools. In this assignment, you will further enhance the Gaussian elimination program to use first barriers, and then again for thread pools. This is to compare if and how those methods improve the performance of the simple parallel version you made in the previous assignment. Due: 2024-02-23
  4. Homework #4. Computing π. In this assignment you will use a combination of MPI and OpenMP to compute π to one million decimal digits of precision with Ramanujan's formula. Due: 2024-04-19
  5. Homework #5 Gaussian Elimination using CUDA. In this assignment, you will implement a parallel Gaussian elimination program using CUDA that processes rows with individual threads. Due: 2024-05-03

Samples

Most, if not all, of these samples can be found in my Parallel "Body-of-Knowledge" repository on GitHub. The versions in the repository are likely to be newer than the versions linked here.

Resources/Articles

General Resources

Gaussian Elimination

Fundamental Concepts

Memory Access Issues

Programming Languages

OpenMP

The N-Body Problem

MPI

GPU Programming & CUDA

OpenCL

OpenACC & SYCL

Memory Models, Lock-Free Programming, Etc.

General Information

Here are some related papers.

Machine Information


Last Revised: 2024-04-25
© Copyright 2024 by Peter Chapin <peter.chapin@vermontstate.edu>