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
- 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.
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:
- discuss the weekly assigned paper(s) before
the in-class discussion.
- write Reaction Notes
to the assigned papers that you will bring with you and submit in
the class in which we discuss the paper
- write a post-discussion summary of the paper(s) to the
class wiki
Grading
- Class Participation, Discussion Activities, Paper Summaries: 35%
- Labs: 25%
- Final Project: 40%
Class Schedule
this is a very tentative schedule, it will be updated as we go
WEEK |
DATE |
ANNOUNCEMENTS |
TOPIC & READING |
LAB & PAPER |
1 | 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 |
2 | 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 |
3 | Feb 02 | | Parallel Performance, Algorithms, Languages, Distributed Computing Skim:Intro to NW and TCP/IP: 2-5 | Paper 3 |
Feb 04 | | Lab 2 |
4 | Feb 09 | | Parallel Languages and Algorithms, MPI, OpenMP | Paper 4 |
Feb 11 | | mini Lab 3 |
5 | Feb 16 | | Parallel Languages and Algorithms, CUDA | Paper 5 |
Feb 18 | | Request XSEDE account Lab 4 |
6 | Feb 23 | | Parallel Algorithms, Distributed Shared Memory | Paper 6 |
Feb 25 | | Set up stampede account Lab 5 |
7 | 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 |
8 | Mar 15 | | Clusters and P2P | Paper 8 |
Mar 17 | | mini Lab 7 |
9 | Mar 22 | | Distributed Systems | Paper 9 |
Mar 24 | Deadline for CR/NC and "W" project proposal due (Mar 25) | |
10 | Mar 29 | | Distributed Authentication | Paper 10 |
Mar 31 | | Lab6:PWW |
11 | Apr 05 | | Project Work Week | Paper 10 |
Apr 07 | | Project Work Week Mid-way Project Report |
12 | Apr 12 | mid-way report due | Cloud Computing skim: Chapt 1 of The Datacenter as a Computer | Paper 11 |
Apr 14 | | . |
13 | Apr 19 | | DFS, Cloud Computing, Security | Paper 12: Written Abstract |
Apr 21 | | Final Project Presentation, Report, Demo, Code |
14 | Apr 26 | project presentations | Final Project Presentations | Final Project Presentation Schedule |
Apr 28 | |