COS-518 Semester Project

The semester-long project in COS-518 is an open-ended systems research project, interpreted broadly. The projects may be proposed independently, or they may be drawn from a list of suggested topics. Projects should be done individually or groups of two, with the approval of the instructor.

The project time-line is as follows:

One project will be selected for a best project award, based on paper writeups and presentations. The decision will be based on both class participants' votes and the instructor's discretion.

Project Suggestions

List of possible topics can be found here. To access the page, you either need to be using a computer on the Princeton network or know the password for remote access.

Project Presentation Schedule for Jan 11

GroupTitleTime
Golightly / W. KimFile Synchronization for Iteractive Use11:00 am
Chen / HuangCACIS: Content-Aware Cooperative Image Storage11:30 am
Sevinc / YuCPU Allocation for Packet Forwarding of Virtual Networks on Commodity Hardware11:55 am
Green / KellerShared Kernel-Mode Click for Programmable Virtual Networks12:20 pm
Kumar / Koukoumidisu-Multicast: Lightweight Ad-hoc Multicast for Mobile Internet Applications1:15 pm
Jung / H. KimScheduler for Parallelized Blocks1:40 pm
Lloyd / SenA Fault-Tolerance Abstraction for Scalable Byzantine Systems2:05 pm
TerraceA Dynamically Reliable DHT Cluster2:30 pm
Badam / Ihm10g -- A Super-Saver WAN Accelerator (Best Project)2:55 pm

Project Management

You should strongly consider using either Subversion or CVS to perform source code control for your project and the paper you write describing it. I suggest Subversion.

I also strongly suggest writing your course project report using LaTeX. It is the de-facto tool in which most CS research papers are written. While it has a bit of start up cost, it's much easier to collaboratively write complex research papers using LaTeX than using word.

Writing Papers

Simulation

For networked systems research, the most popular (free) network simulator is ns-2. Tutorials can be found at here and here.

If performing operating and storage systems research and you need access to one or two computers for testing your system, please contact us. For larger-scale tests, you should try out an emulation or test-bed...

Testbeds and Emulation

Emulab

Emulab is a network emulation environment at the University of Utah. It provides racks of machines and programmable switches that can be configured to form mostly-arbitrary network topologies, with controllable delay and loss between nodes. It's a great way to test real programs in repeatable conditions or at scales that you can't get on your own.

Emulab also provides a set of wireless nodes that you can control, located around their building. They also have an experimental mobile robot testbed that could make for fun projects (the robots are designed to move computers and radios around so that you can do repeatable experiments involving mobility).

Planetlab

PlanetLab is a large-scale, distributed collection of machines that can be used for experiments and measurements, managed by a group based here at Princeton. It has around 600 nodes scattered over about 350 sites. The machines run something linux-ish that you can login to and run programs, and there exist a variety of utilities for automatically distributing software to the nodes, running programs, and so on.

You must sign up to use a PlanetLab account. Please only sign up if you're going to use the account, since it imposes some management overhead on people not involved with the course.

Wireless

Analysis


Last updated: Wed Jan 23 16:21:57 EST 2008 [validate xhtml]