|
|
CS-381 -- Lab 4: Parallel Processing
Fall Quarter 1999
Electrical Engineering and Computer Science Department
Dr. Christopher C. Taylor
S-331, 277-7339
www.msoe.edu/~taylor/
Purpose
The purpose of this lab assignment is to gain insight into the implementation
of parallel processing algorithms by modifying the the Matrix class
from lab 2.
Assignment
In this lab, you are to do the following:
- Implement two "parallel processing aware" algorithms that solve systems
of linear equations.
- One implementation should use a direct method and the other
implementation should use an iterative method. Be sure to chose the
methods we discussed in class that are most suitable to a parallel
processing framework.
- You should reuse the Matrix class where appropriate.
- Since we only have one processor available to us, we must simulate
the existence of multiple processors. In doing so, keep the following
in mind:
- Pass an integer argument to your solver member function which indicates
the number of processors available. For example, if you choose to
modify the GaussJacobi method, it should now have the
following prototype:
vector GaussJacobi(unsigned int n) const;
- Any computation within the method that may be implemented in parallel
form should be rewritten as a separate function with an additional
parameter that indicates which processor should perform the task.
Note: This parameter will basically be ignored in your
implementation.
- Use the following system of 6 equations to test both of your parallel
algorithms.
18a + 17b + 16c + 12d + 75e + 2f = 1
1a + 70b + 3c + 8d + 5e - 2f = -3
300a + 5b + 7c + 9d + 8e + 12f = 17
13a + 17b + 8c + 215d + 7e + 45f = 3
8a + 14b + 31c + d + 2e + f = 5
-2a - 8b - 6c + 3d + 17e + 111f = 22
Experiment with 1, 2, 4, and 8 processors, and report on your
results.
For this project, you are to work individually.
Lab report (due 4:30pm Tuesday, October 19, 1999)
The lab report should be self-contained. That is, it should be possible
for someone to understand what you did and why without seeing anything other
than your report and any previous reports that you have submitted. Your
report should include:
- Purpose
- Problem Statement
- Procedure -- what approach you used to solve the problem
- Discussion including:
- A summary of your activity log indicating how much time you spent
on each phase of the assignment.
- A narrative describing any specific problems you encountered and how
you solved them.
- Conclusions (what you learned, suggestions of how the lab could be
improved, things you would have done differently, etc.)
- Documented source code (clearly
identifying any changes made since your last submission). Note: you
should include all the source code necessary to compile your project.
- Program output generated.
As with any report you submit, correct spelling and grammar are
required. In addition, your report should be submitted electronically
following the Electronic Submission
Guidelines. (You may wish to consult the
sample report before submitting your
report.) Be sure to keep copies of all your files, in case something
gets lost. It may be wise to keep a diskette backup as well.
If you have any questions, consult the instructor.
This page was created by Dr.
Christopher C. Taylor, copyright 1999.
|