[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