Announcements
Class Info
-
Professor: Tia Newhall,
-
Office hours: Wednesdays 2-4, and by appointment, Sci 249
-
Class Meetings::
-
Paper Discussion: Mondays, Section A: 1:15-2:45, Section B: 3:00-4:30, Sci 104
-
Lecture: Tuesdays, 1:15-2:30, Sci 104
-
Lab: Thursdays, 1:15-2:30, Sci 256
-
-
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 assigmnets, 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 | Aug 30 | Topics
Weekly Reading: | Lab 0: resources review for CS87 Paper 1: parallel system Lab 1: pthreads scalability | |
2 | Sep 06 | Topics
Weekly Reading: | ||
3 | Sep 13 | Drop/add ends | Topics
Weekly Reading: |
|
4 | Sep 20 | Topics
Weekly Reading: |
| |
5 | Sep 27 | Topics
Weekly Reading: |
| |
6 | Oct 04 | Topics
Weekly Reading: |
| |
Oct 11 | Fall Break | |||
7 | Oct 18 | Topics
Weekly Reading: |
| |
8 | Oct 25 | Topics
Weekly Reading: |
| |
9 | Nov 01 | Topics
|
| |
10 | Nov 08 | Topics
|
| |
11 | Nov 15 | Topics
|
| |
12 | Nov 22 | Thanksgiving break (Nov 25) | Topics
|
|
13 | Nov 29 | Topics
|
| |
14 | Dec 06 | Topics
|
| |
Dec 17 | Final Presentations, 2-5pm, 7-10pm, Sci Cntr 104 |