CSC 125 MPI Assignment 2: Solving a PDE Due at time of final exam 12/16, 1:30pm This assignment requires you to develop the following skills with MPI: Know how to use MPI_Reduce and All_Reduce Know how to create a 2D mesh communicator to decrease comm cost Know how to create dynamically allocated contiguous arrays in C Know how to define a new MPI data type with MPI_Type_Vector To make this assignment more manageable for you I've provided some files. You just need to fill in the blank (but it's a rather large blank). On the course site, find the following files mesh.h: header file for your c program meshsocket.c: routines for socket communication with Java display server meshskeleton.c: Skeleton program - YOU HAVE TO WRITE THE worker(). meshdisplay.java: java display server boxworld.java: primitive 3d drawing routines I wrote long time ago when done, compile and run with: mpicc -lm mpiapplication.c -o myapp javac boxworld.java meshdisplay.java java meshdisplay & # must run first mpiexec -n myapp #takes optional ip string for display server addr The display server listens on port 10099, and only talk to rank 0 cpu. =============================================================== 1. Understanding the .h file: It is crucial that you familiarize yourself with what's already inside mesh.h (or slice.h): Macros: EPSILON : the threshold at which two double values are considered equal. That is, a and b are considered equal if |a-b|