Class Lectures and Reading Assignments
CS 51590
Parallel Computing
Spring, 2020

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

Here is the exam/homework assignment. Follow the directions in the pdf document. This is due in Blackboard on Friday, May 8.

Here is a link to today's video lecture.

Here is the updated code for doing serial and parallel searches on either one large data file or a large collection of data files. I've included timing information from my computer on the data linked to below.

Here are links to the 2.3 GB of data I used, both as one big file and as 1,000 individual files, and also Andrew's original data set.

Here is a link to today's video lecture.

Here is an exam/homework assignment. Follow the directions in the pdf document. This is due in Blackboard on Friday, May 8.

Here is a link to today's video lecture.

Here is a link to the 2.3GB collection of 1,000 text files that I used for the in class experiments.

Here is the updated code for doing serial and parallel searches on either one large data file or a large collection of data files.

Here is a link to today's video lecture.

I have tried to reorganize the code that we have been looking at lately. I've divided the code into four folders

For some of this code, it helps to have large amounts of data to run the code on. Here are links to Andrew's collection of text files and also the 2.3GB data file that I have been using for in class experiments.

Here is a link to today's video lecture.

Here is a link to today's video lecture.

Here is the updated futures and thread pool code from today's lecture.

Here is a link to today's video lecture.

Here is the updated futures and thread pool code from today's lecture.

Here is a link to today's video lecture.

Here are the notes and code from today's lecture.

Here is a link to today's video lecture.

Here is a link to today's video lecture.

Here is a second copy of the fork/join code. Hopefully this copy will download correctly.

Here are links to the video lectures from this week.

Our class will meet at 6:30 using the Zoom application. Here is an invite link to the class meeting.

Read the following two articles about Fork/Join.

Spring Break - No class today.

Spring Break - No class today.

Read each of the following pairs of a discussion followed be a research paper.

Read Sections 3 and 4 (pages 14-30 and 36-43) on Java concurrency from the following.

We will look at the fork-join examples from the following zip file.

The code in this zip file demonstrate three ways to do simultaneous I/O, polling, events, and threads.

The following zip file explains inter-process communication using pipes with Linux, Windows and Java.

The code in these zip files demonstrate the producer/consumer pattern (also called the "bounded buffer").

Here are explanations of the producer/consumer pattern using condition variables and semaphores (using pthreads) from this operating systems textbook.

Read Chapter 4 from the book The Well-Grounded Java Developer.

The code in this zip file demonstrates the idea of "false sharing".

We will look at the code from the following zip file.

We will look at the code from the following zip file.

We will look at the code from the following zip file.

No class today, Martin Luther King Jr. Day.

Read the following two chapters about Pthreads from this operating systems textbook.

Read the following two introductions to Java threads.

Here are a few more introductions to Java threads that you might find useful.

We will look at the code from the following file.