Class Lectures and Reading Assignments
CS 59000-009
Parallel Programming
Fall, 2018

This page documents what we do in class. It contains programs that we will discuss in class, reading assignments, simple homework exercises that you can work on for practice and exam preparation (not for credit), and links to other sources of information.

Here is an exam. This is due Friday, December 14.

See the homework assignment page for your third assignment.

Read the following chapter about condition variables from the operating systems textbook.

Here are some examples using condition variables.

Thanksgiving Break. No class.

This zip file contains an implementation of the "producer/consumer" problem using semaphores.

Read Section 31.4 from the following chapter about semaphores and the producer/consumer problem.

Read Chapters 1, 2, Sections 3.1 - 3.6, and Sections 4.1 - 4.2 from The Little Book of Semaphores.

Read Sections 31.1 - 31.3 from the following chapter about semaphores from the operating systems textbook.

See the homework assignment page for your second assignment.

Read the following chapter about locks from the operating systems textbook.

Here are example programs using locks in Pthreads and Windows. The Pthreads examples can be compiled with either Windows or Linux.

Read the following two chapters about threads from the operating systems textbook.

Here are example Pthreads and Windows threads programs. The Pthreads examples can be compiled with either Windows or Linux.

This week we will discuss folders 8 and 9 (implementing pipes) in the following zip file.

This week we will discuss folders 6 and 7 (implementing I/O redirection) in the following zip file.

We will discuss folders 4 and 5 (standard streams, I/O redirection, filters, and pipes) in the following zip file.

To learn about the Linux command-line, read the first seven sections from the following web site and the first six chapters of the accompanying book.

Labor day. No class.

Here are example programs that create processes on Linux and Windows.

The following zip file contains explanations and sample code about simple forms of inter-process communication.

See the homework assignment page for your first assignment.

We will begin the course with a review of processes and then we will cover the "middle piece", Concurrency (in blue), from the folowing operating systems textbook.

Read the following three chapters about processes from this textbook.

Here are example programs that create processes (on Windows and Linux) and a version of GCC that should build the Windows examples.

Important: You should get an account on a Purdue Linux cluster. We will use it as an example Linux system. Log into Purdue's "research account management tool" using your Purdue career account. When you are asked for a "research group name", use "Purdue Northwest". Under "Select which queues and resources to request access to", check "Rice". In the textbox for comments, put "CS 59000-009 Professor Roger Kraft". Then click the "Submit Request" button, and we will see what happens.