[MSOE Homepage]

Dr. Taylor's MSOE Homepage

Unix is a Four
Letter Word

My Photo Album

My Personal Homepage

CS-381 Main page

CS-381 -- Lab 4: Parallel Processing

Fall Quarter 1999

Electrical Engineering and Computer Science Department
Dr. Christopher C. Taylor

S-331, 277-7339



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.


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.