CS633 Assignment 1 Program to send D bytes from one node to another node using MPI_Send/Recv Solved
Write a program to send D bytes from one node to another node using MPI_Send/Recv. Each send/recv should be done for 100 times. The experiment should be repeated 5 times on a pair of nodes (select nodes from your bucket only, see below). D = {128, 1024, 65536, 1048576, 4194304} in bytes. Use 1 process per node. Plot the effective bandwidth for each data size (one plot). MBps (y-axis) and MB (x-axis). Pseudocode: For d in D { Repeat 100 times send and recv
Write a program to send D bytes from (P-1) senders to 1 receiver (choose rank 0 as the receiver rank). Compare blocking and non-blocking sends and receives. D = {1024, 65536, 1048576} in bytes. Total #processes P = {8, 16, 32}, use 4 processes per node, i.e. #nodes = {2, 4, 8}. Sends/recvs should be repeated for 100 times. Repeat runs for each data point 5 times. Plot the effective bandwidth for each D for blocking and nonblocking for all process counts in the same graph (6 plots). MBps (y-axis) and MB (xaxis). Pseudocode: For all process counts For d in D { Repeat 100 times Isend/send and Irecv/recv } General execution instructions Node buckets: use the following node conventions. • CSE login names starting with A – B: 172.27.19.1 – 13 • CSE login names starting with C – L: 172.27.19.14 – 26 • CSE login names starting with M – R: 172.27.19.27 – 39 (barring node 36) • CSE login names starting with S – Z: 172.27.19.40 – 54 Suggestion: Its preferable to have a script which generates machinefile/hostfile on-thefly based on the node status so that your jobs never fail. General submission instructions Each submission subfolder (named 1.1, 1.2) should necessarily contain the source code (‘src.c’), ‘Makefile’, ‘readme’, job script (‘run.py’ or ‘run.sh’), plot script and plots. You should measure the total time taken by your main algorithm. The job script should run all the configurations, i.e. I should be able to run the job script to execute your code (all configurations). The job script must generate data* files, which must be input to your plot script. Optionally, you may automate plot generation. Your plot should be named ‘plot.jpg’. The readme should contain your observations regarding performance/speedup and any issues that you might have faced. You may have other auxiliary files, if required.