CSCI 338

Parallel Processing

Home | Lectures | Reading Assignments | Programming Assignments | Links | CS@Williams

Home

Instructor: Kelly Shaw
Email: kshaw AT cs.williams.edu
Phone: x2772
Office: TPL 315
Office Hours: Thurs. 2:30-4, Fri. 1-2 and by appt
Class Meeting Times: MR 1:10-2:25pm in TCL 206
Textbooks: Unix Systems Programming: Communication, Concurrency, and Threads (2nd Edition),
by Kay Robbins and Steve Robbins
An Introduction to Parallel Programming,
by Peter S. Pacheco
Programming Massively Parallel Processors: A Hands-on Approach (3rd Edition),
by David B. Kirk and Wen-mei W. Hwu
Programming on Parallel Machines,
by Norm Matloff

Course Description

This course explores different parallel programming paradigms used for writing applications on today’s parallel computer systems. The course will introduce concurrency (i.e. multiple simultaneous computations) and the synchronization primitives that allow for the creation of correct concurrent applications. It will examine how a variety of systems organize parallel processing resources and enable users to write parallel programs for these systems. Covered programming paradigms will include multiprogramming with processes, message passing, threading in shared memory multiprocessors, vector processing, graphics processor programming, transactions, MapReduce, and other forms of programming for the cloud. Class discussion is based on assigned readings. Assignments provide students the opportunity to develop proficiency in writing software using different parallel programming paradigms.

Policies

Course Syllabus
Department Honor Code and Account Agreement