COMP 4704 Distributed Stream Processing, Fall 2008
General Information
This is a seminar offered jointly by
Dr. Chris GauthierDickey,
Dr. Christian Grothoff and
Dr. Matthew Rutherford.
Prerequisites
The prerequisites for this class is a good understanding
of C/C++, computer architecture and networking. Some
understanding of programming language concepts,
computer graphics and software engineering principles
would also be beneficial.
Lecture Hours and Location
The lectures will be held Tuesdays and Thursdays from noon-2pm
in John Greene Hall 216.
The Debian GNU/Linux lab is in John Greene Hall 216.
In order to get a door code for the Computer Lab please visit
the labcode webpage
(after signing up for an account).
The code is updated on weekly basis.
Office Hours
- Chris GauthierDickey - JGH 3rd floor
- Monday, Wednesday, 5-6 and Tuesday, Thursday 9-10 or by appointment.
- Christian Grothoff - JGH 108
- Tuesday, Wednesday, Thursday 4-6 and by appointment. Wednesday office
hours may feature a baby.
- Matthew Rutherford - JGH 117
- Monday and Wednesday, 10am - Noon or by appointment.
Syllabus
This is a research seminar in systems centered around implementing
a distributed video conferencing system using a SOA-like architecture
and GPU programming. Students and faculty will be reading and
presenting research papers related to the project and students will
work in teams to design, implement and test a distributed
video conferencing system.
Specific topics that will be covered:
- Multistream Pipelines
- Service Oriented Architecture and the Enterprise Message Bus
- CUDA (GPU) Programming
- Real-time Data Streaming
- Distributed System Design
- Testing and Evaluating Distributed Systems
Assignments and Grading
Students will be graded based on
the quality of their presentations, their written reviews and
their contributions to the project. You can find the grading
rubrik for the presentations here.
Software
You will be developing software for GNU/Linux and/or OS X for this course.
If you have any problems installing the software, you can always use the department's
Debian GNU/Linux machines which have most of the necessary software installed.
Submission of Assignments
Each student will get access to a subversion
repository. Project code must be committed to that repository by the respective
deadline. Students are required to use the repository for version control while
still working on the assignment. Only the last version commited before the deadline will
be used for grading.
In order to access your subversion repository, you must first request an account.
For this, you first need to generate an encrypted password. On any GNU/Linux or UNIX
machine (or even a Microsoft system with Apache) enter
$ htpasswd -nb $USER PASSWORD
where PASSWORD is your desired password. You will not be able to change the
password later. Send the output of the command to
grothoff@cs.du.edu to request
an account. Once your account has been created, you should do an initial check out:
$ svn checkout https://svn.cs.du.edu/courses/comp4704/f2008/$GROUP
$ cd $USER
You can add the files to submit just like you added the directory.
Make sure to commit the final version with all files (hint: svn status)
before the deadline. It is also a good idea to do a seperate checkout and
verify that the result works.
If you already have a subversion account from a different class, you still
must request a new account for this quarter. You can use the same
username and password. Furthermore, when doing the checkout, make sure that
the directory $USER does not already exist. You can rename the
directory afterwards, for example using:
$ mv $GROUP comp4704
Schedule
Class 1: Introduction (9/9/8)
- Useful links
- Subversion,
Template for Reviews
- Reading
-
Class 2: X10 and PGAS (9/11/8)
Class 3: CMS Pipelines (9/16/8)
Class 4: StreamIt (9/18/8)
Class 5: StreamFlex (9/23/8)
Class 6: Existing Distributed Stream Processing (9/25/8)
Class 7: Workloads for Distributed Systems(9/30/8)
Class 8: CUDA (10/2/8)
Class 9: CUDA (10/7/8)
- Michael Garland, Scott Le Grand, John Nickolls, Joshua Anderson, Jim Hardwick, Scott Morton, Everett Phillips, Yao Zhang, Vasily Volkov:
Parallel Computing Experiences with CUDA.
Qi
- Shane Ryoo, Christopher I. Rodrigues, Sara S. Baghsorkhi, Sam S. Stone, David B. Kirk, Wen-mei W. Hwu:
Optimization principles and application performance evaluation of a multithreaded GPU using CUDA.
Garoot
Class 10: Video conferencing (10/9/8)
Class 11: CUDA Tutorial (10/14/8)
Class 12: Testing Tutorial (10/16/8)
- Integration 1: dup and simple filters
Class 13: Scribe (10/21/8)
Class 14: Integration (10/23/8)
Class 15: Simulation of Distributed Systems (10/28/8)
Class 16: Testing Networked Systems (10/30/8)
Class 17: Testing / Analysis Topics (11/4/8)
-
Edward A. Lee The Problem with Threads and
Michael Boyer, Kevin Skadron, and Westley Weimer Automated Dynamic Analysis of CUDA Programs Ritzdorf
- Aguilera, M. K., Mogul, J. C., Wiener, J. L., Reynolds, P., and Muthitacharoen, A. 2003. Performance debugging for distributed systems of black boxes. Keene
Class 18: PlanetLab (11/6/8)
- A. Bavier, M. Bowman, B. Chun, D. Culler, S. Karlin, S. Muir, L. Peterson, T. Roscoe, T. Spalink, M. Wawrzoniak:
Operating System Support for Planetary-Scale Network Services.
Ritzdorf
- Jeannie Albrecht, Christopher Tuttle, Alex C. Snoeren, Amin Vahdat:
PlanetLab Application Management Using Plush.
Garoot
Class 19: Integration (11/11/8)
Class 20: Individual Demos (11/13/8)
Christian Grothoff
Last modified: Thu Oct 9 14:24:55 MDT 2008