CIS5930-07 Parallel Computing: Project topics

Email me three topics, in decreasing order of preference, by 3 pm Friday 19 Oct.

Goals:

The term project has the following goals: (i) to give you significant practical experience on parallel programming (ii) to give you experience with research skills such as literature search, reading and writing papers, designing and analyzing algorithms, etc.

The project:

You may work in groups of two, if you wish to. You should select some topic related to parallel computing. Sample topics are given below. You may choose a topic related to your thesis/dissertation, if you wish to. The topic can be similar to the one you studied for your paper presentation. You should then refer to recent (1998 or later) issues of some respectable journals, such as SIAM Journal on Scientific Computing, and read more about your topic. (It is not sufficient to read just the paper you studied for your paper presentation.) You should email me the list of papers you will study, by 31 Oct.

Your major goal in the project is to critically analyze a few papers (on the same topic). You will first understand the issues they address. You should then implement their techniques efficiently, and study the performance, including that of competitive alternatives. You will write a report describing the work done in the papers you read, and practical applications of the work. You should then give the results of experiments with your implementations of these algorithms. You may be able to theoretically explain your result too. You should finally summarize the advantages and disadvantages of the techniques you studied. The report should also contain a bibliography of papers to which you referred.

You should give me a hardcopy of the report, and a tar file for the code, by 3 pm, 30 Nov 2001. I may ask you to make some revisions, which should be submitted by 7 Dec. You will also give a presentation in class and a demonstration in my office, where you will also be asked further questions on your work. Further details on the project will be given in class.

Deadlines

Topics

1. Parallel Monte Carlo and Quasi-Monte Carlo.

2. Parallel linear solver -- direct or iterative.

3. Parallel eigenvalue solver.

4. Monte Carlo techniques to solve linear systems or find eigenvalues, in a parallel environment.

5. Parallel QR factorization or linear least squares.

6. Parallel benchmarks.

7. High performance Java.

8. Domain decomposition/graph partitioning.

9. Dynamic load balancing.

10. MPI2.

11. New parallel programming models.

12. Parallel sorting or selection.

13. Parallel languages.

Helpful links

1. http://www-cse.ucsd.edu/classes/fa99/cse164/Projects.html

2. http://www.cs.berkeley.edu/~demmel/cs267/

3. http://www.cs.ucsb.edu/~schauser

4. http://www.ptools.org

Grading:

You will get graded for each component: (i) timely submission of project topic (ii) preliminary report (iii) final report (iv) code (v) presentation (vi) demonstration. Of course, the final report and code will have greater weight. If you work as a part of a team, you may still get different points based on the work you did, on your presentations, and answers to questions during the demonstration.

The ideal project will discuss a recent algorithm that is a significant improvement on the existing ones for an important class of applications. Your implementation will be better than that done in the paper. Your theoretical analysis will point out disadvantages not mentioned in the paper, and your experimental results will confirm this. Similarly, your comparisons with other algorithms will reveal relative advantages and disadvantages that were not reported by others.