CS 87 Parallel & Distributed Computing

Spring 2016

Schedule | Course Description | Goals | Readings | Grading | Resources


Professor: Tia Newhall

Tuesday: 1:15 Sci Cntr 105
Thursday: 1:15 Sci Cntr 256
Lab A: M: 1:15-2:45 Sci Cntr 204
Lab B: M: 3:00-4:30 Sci Cntr 204
Office hours: Friday 10-12, and by appointment

class piazza page: CS87 piazza for lab Q&A
class wiki: CS87 wiki for discussion summaries and projects

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. The first half of the course will focus on different parallel and distributed programming paradigms. During the second half, students will propose and carry out a semester-long research project related to parallel and/or distributed computing.

Course Goals

Required Readings

There is no required textbook for this courses. Instead, there will be required readings from on-line resources posted to the class schedule. We will also read and discuss one or two research papers most weeks. These will also be posted to the class schedule and listed off the paper reading schedule page as well.

You will be assigned to reading groups for the semester. Your reading group will meet weekly to:

  1. discuss the weekly assigned paper(s) before the in-class discussion.
  2. write Reaction Notes to the assigned papers that you will bring with you and submit in the class in which we discuss the paper
  3. write a post-discussion summary of the paper(s) to the class wiki


Class Schedule

this is a very tentative schedule, it will be updated as we go

Jan 19

Drop/Add ends (Jan 01)

Parallel and Distributed Systems and Computing
Read: Sec. 1-4
About Reading Groups

Paper 1

Jan 21

  Lab 1

Jan 26

  Parallel Systems and Programming, Distributed Systems
Read: Sec. 5
handout: 1.1,1.2
About Reaction Notes

Paper 2

Jan 28

  Thurs Lab

Feb 02

  Parallel Performance, Algorithms, Languages, Distributed Computing
Skim:Intro to NW and TCP/IP: 2-5
Paper 3

Feb 04

  Lab 2

Feb 09

  Parallel Languages and Algorithms, MPI, OpenMP Paper 4

Feb 11

  mini Lab 3

Feb 16

  Parallel Languages and Algorithms, CUDA Paper 5

Feb 18

  Request XSEDE account

Lab 4


Feb 23

  Parallel Algorithms, Distributed Shared Memory Paper 6

Feb 25

  Set up stampede account

Lab 5


Mar 01

  Parallel Algorithms, MapReduce Paper 7

Course Project

Mar 03

No class on Thursday

run hello on stampede

Lab 6: project proposal


Mar 08

Spring Break

Mar 10


Mar 15

  Clusters and P2P Paper 8

Mar 17

  mini Lab 7

Mar 22

  Distributed Systems Paper 9

Mar 24

Deadline for CR/NC
and "W"
project proposal due (Mar 25)


Mar 29

  Distributed Authentication Paper 10

Mar 31




Apr 05

  Project Work Week Paper 10

Apr 07

  Project Work Week

Mid-way Project Report


Apr 12

mid-way report due

Cloud Computing

skim: Chapt 1 of The Datacenter as a Computer

Paper 11

Apr 14


Apr 19

  DFS, Cloud Computing, Security Paper 12: Written Abstract

Apr 21

  Final Project Presentation, Report, Demo, Code

Apr 26

project presentations

Final Project Presentations Final Project Presentation Schedule

Apr 28


Academic Accommodations

If you believe that you need accommodations for a disability, please contact Leslie Hempling in the Office of Student Disability Services (Parrish 113) or email (lhempli1 AT swarthmore DOT edu) to arrange an appointment to discuss your needs. As appropriate, she will issue students with documented disabilities a formal Accommodations Letter. Since accommodations require early planning and are not retroactive, please contact her as soon as possible. For details about the accommodations process, visit the Student Disability Service Website. You are also welcome to contact me privately to discuss your academic needs. However, all disability-related accommodations must be arranged through the Office of Student Disability Services.

Distributed Systems, Parallel systems, and Cluster links

Reading, Writing, Presentation Advice

Unix and programming resources