Announcements
Class Info
-
Professor: Tia Newhall,
-
Office hours: Tues 4-5, Wed 2-3, and by appointment, Sci 249
-
Class Meetings:
-
Paper Discussion: Mondays, Section A: 1:15-2:45, Section B: 3:00-4:30, Sci 246
-
Lecture: Tuesdays, 1:15-2:30, Sci 104
-
Lab: Thursdays, 1:15-2:30, Sci 240
-
-
EdStem: Q&A Forum
-
GitHub: CS87 Swarthmore GitHub Org
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.
Prereqs: CS31 and CS35 required; prior upper-level CS course experience required. Designated: NSE, W (Writing Course), CS Group 2 Course
Course Goals
-
Analyze and critically discuss research papers both in writing and in class
-
Formulate and evaluate a hypothesis by proposing, implementing and testing a project
-
Relate one’s project to prior research via a review of related literature
-
Write a coherent, complete paper describing and evaluating a project
-
Orally present a clear and accessible summary of a research work
-
Understand the fundamental questions in parallel and distributed computing and analyze different solutions to these questions
-
Understand different parallel and distributed programming paradigms and algorithms, and gain practice in implementing and testing solutions using these.
Course Structure
CS87 is a seminar-style course. Its structure is designed as a bridge from lecture-based learning to inquiry-based cooperative learning that is the norm in post-Swarthmore experiences, be it graduate studies or work in industry. Although there will be some lecture, all work in this class is cooperative. This includes working in small groups to solve problems, to prepare for class discussion, to produce solutions to written and lab assignments, to deliver presentations, and to carry out all parts of the course project, The result of this type of course structure is that you are directly responsible for a large part of the success or failure of this class.
Class Schedule
This is a very tentative schedule. It will be updated as we go.
WEEK | DAY | ANNOUNCEMENTS | TOPIC | ASSIGNMENT |
---|---|---|---|---|
1 | Sep 04 | Topics
Weekly Reading: | Lab 0: resources review for CS87 Paper 1: PDC system report Lab 1: Scalability study | |
2 | Sep 11 | Topics
Weekly Reading:
| ||
3 | Sep 18 | Drop/add ends (9/18) | Topics
Weekly Reading: |
|
4 | Sep 25 | Topics
Weekly Reading: |
| |
5 | Oct 02 | Topics
Weekly Reading: |
| |
6 | Oct 09 | Topics
Weekly Reading: |
| |
Oct 16 | Fall Break | |||
7 | Oct 23 | Topics
Weekly Reading: |
| |
8 | Oct 30 | Topics
Weekly Reading: |
| |
9 | Nov 06 | Project Proposal Due (Nov 09) | Topics
|
|
10 | Nov 13 | Topics
|
| |
11 | Nov 20 | Proj Midway Pres (Nov 21) Proj Midway Report (Nov 22) Thanksgiving break (Nov 23) | Topics
|
|
12 | Nov 27 | Topics
|
| |
13 | Dec 04 | Topics
|
| |
14 | Dec 11 | Proj Pres (Dec. 11, 12) Proj Pres (Dec. 11, 12) (Dec 12) | Topics
|
|
15 | Dec 18 | Proj Demo (this week) Proj Report (Dec 19) Proj Code (Dec 20) | Topics
|
|