Final Project Suggestions

(Please e-mail the points of contacts for further details.)

1) Applications Performance on VIRAM (suggested by Lenny Oliker)

Take your favorite application and implement it on VIRAM (or STREAMS). Estimate performance, scalability. For more details contact Lenny Oliker.
As an example of such a project consider the paper
Memory-Intensive Benchmarks: IRAM vs. Cache-Based Machines'', International Parallel & Distributed Processin Symposium (IPDPS 2002),  (L. Oliker, B. Gaeke, P. Husbands, X. Li, K. Yelick, and R. Biswas). pdf

2) Application of  the ACTS Tools (suggested by Tony Drummond and Osni Marques)

See the ACTS final project ideas listed.
 

3) Improve Efficiency of Sparse Triangular Solution (suggested by Esmond Ng)

The efficiency of a sparse triangular solution can be improved by using selective inversion (cf Lecture by Esmond Ng on sparse matrices).  It
boils down to partitioning a sparse triangular matrix by columns so that the diagonal block of each partition can be inverted explicitly without any (or with very little) fill.

It's ideal for SuperLU since there is a natural partitioning induced by the supernodal structure.  So, the project involves incorporating selective inversion into the triangular solution phase in SuperLU_DIST. The project  access to a parallel machine and a bit of programming.  Sherry  Li  has indicated that she would be able to help the student(s) to understand the data structures in SuperLU_DIST so that the student(s) could make the changes.
 

4) Performance Modeling of a Climate Code (suggested by Michael Wehner)

Another idea for a project is to exploit  PyACTS (ACTS toolkit) to do some performance profiling of climate models. Specifically, it would be interesting to see how these tools characterize CAM2, the stand alone atmosphere model. It would be even more interesting to run the tools on CCSM2, the fully coupled model.
 

5) Dynamic Load Balancing in a Climate Code (suggested by Chris Ding and Michael Wehner)

Change the current static domain decomposition in the CCSM2 cliamte code in the following way:
1. The existing domain decomp is a single domain on each processor. However, due to clouds, day-night cycles, load on each proc is not balanced. We want to split this domain into several pieces, and mix them so that load on each proc is balanced.
 2. The load oad on each domain could change dynamically. So we require the domains change dynamically according to a predefine objective function.

This project thus have enough flexibility and complexity for students to master the domain decomposition/ remapping issues important to climate modeling and also to parallel computing in general.
 

6) Climate Modeling Projects (suggested by Inez Fung)

1. Improve/Continue the port of CSM1.4 to seaborg.
2. Parallelize one/all of the data components in CCSM2.0.1.  Currently, the data models are serial execution.  It would be helpful to rewrite them, so they could be run on more than 1 processor. This should be done using MPI.
3. Profile CCSM2.0.1 on seaborg, use hpmcount and hpmlib to access model performance, propose/implement/test performance modifications, propose alternative processor layout configurations.
4. Prototype a single executable version of CCSM2 using simple component and MPH (a NERSC utility).  I can provide a very simple CCSM2 configuration running multiple executables and they would need to reorganize the code into a single executable. I can give some guidance on how to do this.