CSE 260 Research Projects

One of the goals of CSE 260 is to teach you how to conduct research. A research project is a formal requirement of the course. The project should be a polished piece of work and it counts toward 30% of your grade. The grade on your project will be based on your successfully completing the following 3 parts:

  1. Project proposal: due Friday,  November 1, 2002
  2. Progress report: due Friday  November 22 
  3. Final Report: due Friday, December 6, 2002, 5PM, in APM 4141.

Look over the  list of projects  below and choose one.  We can meet to discuss projects if you like. (In case of duplications I'll contact the different groups to avoid overlap.) If you'd like to suggest your own project be sure and discuss it with me first. Projects may be done in teams of two or three. If you form a group of three, or if you are working on your own, be sure and discuss the scope of the project with me.

Your project proposal should identify the investigators and the title of the project. You should present a preliminary list of milestones--with completion dates--and possible options that may depend on your progress during the remainder of the quarter. Be realistic! Some of these projects are open ended to give you some flexibility. Be sure and clearly describe the division of labor in the proposal. If you are proposing your own project, be sure to include a description of the project that is approximately 250 words in length, roughly one double spaced page. Once I have received the project proposals, I will give you back written feedback, in part, to assess whether the project is appropriate in scope and size.

You should allow 4 weeks for the project. You may need to fine-tune your goals as the project goes underway. This is fine so long as you document your decisions.

The project progress reports will help keep you on a steady pace and enable you to make mid-course corrections. The report should

  1. discuss your progress to date, including, if you are working in a team, a self-evaluation which discusses the division of labor and other details about how you worked as a team team (A copy of the form is available in html or tex.)
  2. revise any milestones and completion dates that you established previously, including an explanation.

In evaluating your proposal and progress report I will check to see if your goals are realistic. A realistic project that is successfully completed will likely receive a higher grade than one that is too ambitious and doesn't get finished. Moreover, results alone are not adequate. You need to interpret them. If you have any questions about this, be sure and see me about them. If you do have an ambitious design, we can work together to set realistic short term goals.

Submit your project in hard copy form. If you like, you may also submit the report in html format (with ASCII and postscript attachments). I will give you instructions on how to submit an electronic copy of your report later on if you need them.

Sample Projects from previous years

  • Message passing performance (Bob Boyer and Patrick Chase, Spring 2001)
  • Performance Comparison of MPI vs. Titanium(Roger Bharath and Stephen Lau, Spring 2001)

  • The Projects

    Here is a list of suggested projects. I have additional documentation for certain projects, so be sure and contact me if you'd like to know more about the project.

    Bouncing balls gas dynamics simulation.
    Implement a gas dynamics simulations using "bouncing balls."  The challenge is that particles distribute themselves non-uniformly, and must be evenly balanced across the processors. A description of the problem can be found Here. For more information about load balancing see the following URL: http://www-cse.ucsd.edu/~baden/classes/cse262_wi02/lectures/Lec07/Lec07.html. To learn about the simulation try one of the following links: http://comp.uark.edu/~jgeabana/mol_dyn/KinThI.html. You will need to use asynchronous communication to improve performance.
    Latency-tolerant FFT in KeLP
    The Fast Fourier Transform (FFT) is used in image processing and in solving certain numerical problems. For more information about the FFT, see Jim Demmel's notes at http://http.cs.berkeley.edu/~demmel/cs267/lecture24/lecture24.html#link_6.
    The FFT performs large amounts of collective communication. To reduce the cost of this communication, implement a latency tolerant 2D or 3D FFT using the KeLP2 framework. Since implementations of MPI generally do not truly overlap communication, KeLP2 uses a thread to overlap communication that makes blocking MPI calls. To learn more about KeLP, go to the web page http://www-cse.ucsd.edu/groups/hpcl/scg/Research/MT.html and start with the paper "Communication overlap in multi-tier parallel algorithms," by Scott B. Baden and Stephen J. Fink, Conf. Proc. SC '98, Orlando FL, November 1998 at URL ftp://ftp.cs.ucsd.edu/pub/scg/papers/1998/k2_sc98.ps.gz See Stephen Fink's Ph.D. dissertation (pp 116-124) for the details of the overlapped FFT formulation. Compare with non-overlapped  variant, which will run as a special option of your code. You will  run on NPACI's Blue Horizon system, with 8-way SMP nodes.
    Sharks and fishes
    Sharks and Fishes is a computer simulation designed to mimic the behavior of moving bodies. There are several variants, and they are described more fully at the URL http://www.cs.berkeley.edu/~demmel/cs267/Sharks_and_Fish. The simplest version of Sharks and Fish is Conway's game of life http://www.bitstorm.org/gameoflife. You should implement one of the more ambitious versions, e.g. version 5 or version 6, where the load balancing problem arises.
    LU Decomposition
    LU Decomposition is used to solve systems of linear equations. Jim Demmel's notes provide  a nice discussion of the algorithm: http://www.cs.berkeley.edu/~demmel/cs267/lecture12/lecture12.html#link_3  This application requires the use of CYCLIC decomposition to balance the workloads.
    2D or 3D multigrid
    Multigrid is a fast technique for solving linear systems of equations. It accelerates the computation performed by RedBlack3D.  Report on the effects of reduced parallelism at the coarser levels. See Jim Demmel's Notes on Multigrid for the details, including numerical issues. As an option you could compare performance and scalability with that of an an FFT solver.
    Hierarchical component labeling
    Implement a hierarchical variant of the component labeling problem discussed in the Leighton handout. This project is similar to multigrid, but as the algorithm is less involved, you'd be expected to focus on performance tradeoffs.
    Fast adaptive storage and retrieval
    Scientific data sets can be come unmanageable when conducted on a large scale.  While there exist techniques for compressing data, many of the techniques are lossy and can introduce unacceptable errors.  Lossless techniques generally fare poorly, as they are limited to a factor of two in compression. An alternative approach is based on the simple observation that  in some applications only  relative small fraction of the simulation output is interesting to the user. You will be given a data set in which interesting features are marked. The project is to come up with an efficient sparse representation that captures the features an discards background data. The advantage of our technique is that the amount of storage required to archive large data sets is proportional to the amount of interesting data, and that the information required by the user is stored at full precision, without introducing any artifacts. Since many applications model localized physical phenomena, features will often be clumped.  An efficient representation can take advantage of this locality, covering the features with uniform blocks that are inexpensive to describe.  You'll need to balance the blocks across processors in order to ensure that the  processor are evenly loaded.  If you have the time, implement a simple spatial query: fill a given window in space with data obtained from the feature data. 
    Your project goes here
    Feel free to suggest a project of your own design. Be sure and discuss your project with me before writing your proposal.

    10/21/02 03:43 PM