CS633 Assignment 2 program to send and receive D units of data Solved
Write a program to send and receive D units of data between all pairs of nodes in the set S’. S’ is a set of any 30 nodes from set S, see below what nodes are in S, this is based on your username. Use ppn=1. You must try to implement the data transfers in a way such that there can be multiple concurrent transfers between pairs of nodes. The objective is to time the communications for 3 data sizes, D = {64 KB, 512 KB, 2 MB} and measure the effective bandwidth observed between each pair of nodes. Note that you must not time all the pairwise communications at one go, but you have to time each individual communication. Repeat the runs at least 10 times (preferably at different times and/or different days, its completely up to you). You may use a different set of 30 nodes during each run, i.e. your S’ need not be fixed but S’ S. Plot the effective bandwidth (median) for each pair of nodes for each data size (3 plots) as a heatmap. An example plot script (plot.py) is uploaded, modify it as required or you can use your own script as well. Your plot should be named ‘plot-D.jpg’ or ‘plot-D.png’.
Pseudocode:
Repeat =10 times
For d in D {
For all pairs of nodes (a,b) in S’
send and recv d bytes between (a,b)
} Write a program to implement broadcast as a combination of MPI_Scatter and MPI_Allgather (ring). You may use MPI_Scatter, however you must implement Allgather (ring). You are free to use blocking / non-blocking P2P or any other optimizations for implementing Allgather (ring). Compare performance between your broadcast (New_Bcast) and the default MPI_Bcast. Initialize the data at root process (0) with random floats, do not time this data initialization part. Plot (box plot) the execution times for both MPI_Bcast and New_Bcast in the same plot for D={64 KB, 256 KB, 512 KB, 2 MB, 4 MB}. MBps (y-axis) and MB (x-axis). Run this on 3 different process sizes P = {8, 16, 32} and 3 different ppn, ppn={2, 4, 8}. Repeat each run for 10 times. You must have 3 plot files per process size, P. Each plot file will contain 6 graphs (3 ppn for 2 algos). Name your plot files plot-P.png/jpg. Use nodes from your set S. Describe your code (New_Bcast) along with other observations in the ‘readme’.