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:
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
- 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.)
- 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
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