CSCI 3366 (Introduction to Parallel and Distributed Processing), Fall 2013:
Guidelines and Requirements for Projects

Overview

One of the requirements for this course is completion of a project. The project will count as 40 points of your total grade. It should be roughly as ambitious as one of the homeworks. All projects must be approved in advance by the instructor, who will be the final arbiter of whether the topic and level of difficulty are appropriate.

Suggestions for topics

Possible project topics include the following, or you may propose something else. If your project involves writing code, you may use any language/library that can be run on the department's network of Linux machines.

Parallel applications

Your project could be the design and implementation of a non-trivial parallel application. There are many, many possibilities here, mostly falling into one of two categories:

Programming environments

Your project could focus on comparing/contrasting different languages/libraries, possibly including ones we didn't discuss in class, or discussed only briefly. The idea here is similar to the first suggestion under ``Performance experiments'' but with the focus on programmer ease of use rather than performance. If you choose this option and include in the mix of languages/libraries something we didn't discuss in class, you should include in your project a short discussion of its major features -- something along the lines of the discussion in class of how Java sockets/RMI and POSIX threads map onto the Implementation Mechanisms framework.

A hybrid project combining this idea with the ones in ``Performance experiments'' might also work well.

Performance experiments

Your project can consist of a set of experiments designed to measure something about a parallel-programming platform or platforms, such as one of the following.

What to turn in and when

Project proposal.
5 points; due before you begin serious work on what you propose. A brief description of your project topic, no more than a paragraph. Submit by e-mail, and allow 24 hours for a response.

Written report.
15 points; due December 17 at 11:59pm. A brief report (no more than five pages should be required, and two or three will suffice for many projects) describing your project's goals and outcome, preferably in hard-copy form. It should address the following topics and include bibliographic references as appropriate. (1) Describe what problem you are solving and how: If you are writing an application, describe what problem you are solving and the design of your parallel algorithm. If you are conducting performance experiments, describe what you are trying to measure and the experiments you will use to measure it. (2) Discuss your results, including graphs and tables as appropriate (e.g., to show performance as a function of number of processes/threads). (3) Describe any unusual or interesting difficulties you encountered, and/or what you learned from doing the project.

Source code.
20 points; due December 17 at 11:59pm. Complete working source code for any program(s) you wrote as part of your project, submitted electronically as for homework. Be sure your code is readable and well-documented.



Berna Massingill
2013-12-05