CS 87 Parallel & Distributed Computing

Spring 2012

Schedule | Course Description | Course Goals | Textbook | Grading | Resources
Professor: Tia Newhall
Semester: Spring 2012
Time: lecture: 11:20 TR, lab: 1:30-3 W
Location: 264 Sci. Center (lab 240)
Office hours: 1:30-2:30 R, and by appointment

Course Description

This course covers a broad range of topics related to parallel and distributed computing, including parallel and distributed architectures and systems, parallel and distributed programming paradigms, parallel algorithms, and scientific and other applications of parallel and distributed computing. In lecture/discussion sections, students examine both classic results as well as recent research in the field. The lab portion of the course includes programming projects using different programming paradigms, and students will have the opportunity to examine one course topic in depth through an open-ended project of their own choosing. Course topics may include: multi-core, SMP, MMP, client-server, clusters, clouds, grids, peer-to-peer systems, GPU computing, scheduling, scalability, resource discovery and allocation, fault tolerance, security, parallel I/0, sockets, threads, message passing, MPI, RPC, distributed shared memory, data parallel languages, MapReduce, parallel debugging, and applications of parallel and distributed computing.

Class will be run as a combination of lecture and seminar-style discussion. During the discussion based classes, students will read research papers prior to the class meeting that we will discuss in class. During the first part of the course, we will examine different parallel and distributed programming paradigms. During the second part of the course, students will propose and carry out a semester-long research project related to parallel and/or distributed computing. The department's gigabit cluster, two eight processor workstations, as well as the CS lab machines, are available for course projects.

Previous course work in Operating Systems, Networking, Databases, or Architecture is helpful, but not necessary for taking this course.

Course Goals

Required Textbook

Principles of Parallel Programming
by Calvin Lin, Larry Snyder
Addison-Wesley, 2009
(ISBN-10: 0321487907, ISBN-13: 9780321487902)
textbook errata (applicable to just the first printing of the text)

We will also read a number of research papers that will be available through ACM and IEEE digital library.


Class Schedule

this is a very tentative schedule, it will be updated as we go
1 Jan 16   Introduction, Parallel & Distributed Computing Chapt. 1,
(textbook errata),
handout: 1.1,1.2

lab 1
Wednesday lab
2 Jan 23   Parallel Architectures, Iterprocess Communication, Shared Memory, Threads Chapt. 2,
handout: 1.3, 1.5
(skim pthreads p.145-179)

lab 2
Wed lab
3 Jan 30   Distributed Computing, IPC, Socket Programming start Chapt. 3,
paper for Tues
paper for Thurs

lab 3
Wed lab
4 Feb 06   Parallel Performance, Parallel Languages Chapt. 3, start 4, p. 193-199
paper for Thurs

Wed lab
5 Feb 13   Parallel Languages and Algorithms, CUDA Chapt. 4, 10, and p.305-310

lab 4
Wed lab
6 Feb 20   Parallel Languages, MapReduce, MPI Chapt. 7,
p. 296-298
paper for Thurs

Wed lab
7 Feb 27   Parallel Algorithms and Performance Chapt. 4

course project information

lab 5: project part 1
Wed lab

Mar 05

Spring Break

Mar 12   Large Scale Distributed Systems
papers for Tuesday

Wed lab
9 Mar 19 Project Proposal due (Mar 22) Scalable Parallel Algorithms Chapt. 5,
p. 305-310
10 Mar 26   Distributed Shared Memory, P2P lookup
week 10 papers
11 Apr 02 Project Work Week code and update (Apr 08) Project Work Week
lab 6 project work week

lab7: project part2: midway report and presentation
12 Apr 09 Mid-way Project Report due (Apr 12) Clusters, Network RAM
week 12 papers
13 Apr 16   Security, Clouds, MapReduce p. 290-291
week 13 papers

Final project report, presentation, demo
14 Apr 23   Final Project Presentations Presentation Schedule

May 07

Final Project Report due before noon Monday May 7

If you believe that you need accommodations for a disability, please contact Leslie Hempling in the Office of Student Disability Services (Parrish 130, or e-mail lhempli1 AT swarthmore DOT edu) to set up an appointment to discuss your needs. Leslie Hempling is responsible for reviewing and approving disability-related accommodation requests. As appropriate, she will issue students with documented disabilities an Accommodation Authorization Letter. Since accommodations require early planning and are not retroactive, please contact her as soon as possible. For details about the Student Disabilities Service and the accomodations process, visit Student Disability Services.

You are also welcome to contact me privately to discuss your academic needs. However, all disability-related accommodations must be arranged through Leslie Hempling in the Office Of Student Disability Services.

Distributed Systems, Parallel systems, and Cluster links

Reading, Writing, Presentation Advice

Unix and programming resources