The project counts toward 50% of the course grade. Students are required to hand in 2 progress reports, and a final project report. Below are samples of final student reports from the 2003 class.

All work is done by students named and used with permission.

Comparison of Programming and Synchronization Techniques (PDF)

Sean Lie

FFTW and MATLAB®*P (PDF) Richard Hu
Parallel Implementation of a Multi-Length Scale Finite Element Method (PDF) Trevor Tippetts
Java™ MPI in MATLAB®*P (PDF) Max Goldman and Da Guo
A Parallel Hierarchical Solver for the Poisson Equation (PDF) R. Sudarshan and Seung Lee
Sparse Matrix Implementation on MATLAB®*P (PDF) Stu Blair
Parallelizing Incremental Bayesian Segmentation (IBS) Joseph Hastings and Siddhartha Sen

Some Ideas

  • Parallel Jacobi Computation/Simulation
  • Running MATLAB®*P across Multiple Clusters via IMPI
  • 'Automatically' parallelize for-loops with mm mode?
  • Use Video Cards to do Interesting Parallel Computation
  • Parallel Filters
  • Write new front end for *p- Octave? R? Maxima? Write interpreter?
  • Try MATLAB® Optimization Stuff in *P
  • Computer Graphics: Ray Tracing
  • Computer Graphics: Simulate Cloth and Movement of Cloth
  • Computer Graphics: Any Sort of Animation
  • Simulate a Musical Instrument (Wind, String, Percussion, Other?)
  • Simulate a Stellar Collision (Scientific American, Nov 2002)
  • Parallel Linear Programming (Perhaps take Advantage of Star*P)
  • HTML Renderer
  • Integer Factorization by Quadratic or Numberfield Sieve
  • Replicate a known result: 2^20,996,011-1 is prime. 4-color map theorem. 4x4x4 3D tic-tac-toc-toe is first-player (?) win. Kepler conjecture.
  • Create a game playing program for some game other than Chess. Or chess, if you really want.
  • Generate Some Fractal Images
  • Program perturbation. Investigate the effects of typos for a particular programming language/compiler. Start with a working program and introduce perturbations (typos). What percentage cause a compile-time error?
  • Computational biology--Motif discovery: given one set of strings labeled positive, and another labeled negative, find the word (substring) that is present in each positives string not in any of the negatives, with the complication that there is noise: many strings are misclassified in the wrong set.
  • Computational biology. A genome typically contains instances of long chunks of DNA that are identical to another chunk somewhere else. Remove these duplicated chunks.
  • Keep in mind that the human genome will not fit in RAM.
  • Theorem prover. Either parallelize a theorem prover, or use one to prove something interesting.