[CSC 435] MPI Assignment
Andrew J. Pounds
pounds_aj at mercer.edu
Sat Apr 11 05:08:28 EDT 2020
While working on your MPI assignment I found two egregious errors in the
MPI Jacobi code found in your text and in the code that the textbook
author sent me. The first is that the code does this strange
parity-swapping of the solution matrices during each iteration. On one
iteration half of the matrix elements will be zero -- on the next
iteration those that were zeros will have values and those that were not
zero will be zero. This makes is impossible for the matrix to
equilibrate. The second error is much worse -- the system loses mass.
For a chemical physicist that is unacceptable. I spent about five
hours yesterday trying to correct the code - and I got a version working
-- but it added an internal loop with TEN if-elseif-else clauses to
satisfy all of the issues. To achieve equilibrum took roughly N^2
iterations where N is the matrix dimension.
I thought long and hard about how to roll this out as an MPI project.
After adding all of the communication regions, your code would have been
around 500 lines long. With you only have two weeks of class left, and
with the slow progress on BabyBLAS, it seemed laughable to assign you
the task of writing all of that code. Because I cannot be with you face
to face to debug distributed parallel code, the chance of this being
done successfully in two weeks fell to zero.
So, I wrote a new assignment and placed that CANVAS. There is some
coding involved, and MPI still features prominently, but you will not
have to concern yourself with all of the nuts and bolts of MPI
communication. The brunt of this work will be testing/timing across
the cluster in Godsey and relies heavily on your experience with the
BabyBLAS and the MPI exercises that we recently completed.
I have given you until the Wednesday of finals week to get this turned
in. Your final exam (which is on Friday of that week) will have
questions related to this project.
There is one more assignment after this (dealing with CUDA) that is
really short. I am in the process of setting up a system in Godsey for
you to use for this assignment and, once I test it thoroughly, I will
post the assignment. Look for it later today.
--
Andrew J. Pounds, Ph.D. (pounds_aj at mercer.edu)
Professor of Chemistry and Computer Science
Mercer University, Macon, GA 31207 (478) 301-5627
http://faculty.mercer.edu/pounds_aj
More information about the csc435
mailing list