CISC 367: INTRODUCTION TO PARALLEL PROGRAMMING
Spring 1998
Programming Assignment 1
Due Date: start of class, Thursday, February 19, 1998
The objective of this assignment is to
become familiar with the use of MPI on the University of Delaware
Alpha cluster,
to learn how to time MPI programs, and to learn how to
write experimental
reports.
- Read through Sections 1 and 2 of the Beginner's Guide to MPI on the University of
Delaware DEC Alpha Cluster. Make sure that you can compile and run
the example hello world and Mandelbrot programs with several
different numbers (2, 4, and 8) of processors,
and understand how they
work.
These programs can be found in ~ pollock/public and
~ pollock/public/mandel,
respectively, on porsche.
- Playing Ping Pong: Copy the ping_pong.c program from
~ pollock/public
on porsche, and compile and run the program.
Run your program (with 2 processors) 3 times to collect timings and take the average of
the timings, not including any spurious ones in the average calculation.
Create a single chart that contains all of your raw timings and the averages for each
message length.
- Ping pong is a common way
of timing the basic communication of a message passing system on a given
system.
Modify your copy of the program to time the basic communication of messages of
type char, integer, and double. You will need to look up the MPI
types for these types and replace the appropriate type information
in the program. Otherwise, the program does not need
modification. For each data type, run the
program (with 2 processors) 3 times to collect timings and again take the
average.
Create a single chart that contains all of your raw timings and the averages for each message
length.
- Create a single graph that displays all of your timings. The horizontal
axis should be the length of the messages sent, that is how many of the
given data type were sent in a single message. The vertical axis should be the
timings. The graph should have a line for each data type.
For this assignment, you can either create the graph by hand or on the computer using
a tool that automatically creates the graph based on the data inputs.
For later assignments, you need to use a computer to generate the graphs.
Two different approaches to generating these graphs from output of your MPI programs
are given on the CISC 367 web site.
In order to get reliable timing data, you need to make sure that no one
else is using the cluster. To do this, you should run the spyall command
just prior to making a performance run. Also, from past experience,
leaving the timings until last evenings before the assignment due date
makes getting reliable timing runs very difficult to obtain due to
the many other folks trying to get access to the cluster for timings.
Your experimental report should consist of the following sections in this
order. It is strongly recommended that you type your report using a
word processor rather than handing in a hand-written report.
-
Cover Page:
Title, author, course number and semester, date.
-
Project Summary:
In one paragraph, summarize the activities of the lab.
-
Analysis of Hello World:
Explain why the messages are printed in an arbitrary order. In English,
describe an approach that might be used to force the messages to
be printed in increasing order by rank.
-
Ping Pong:
- Collected Timing Data.
This section includes both a chart of the raw collected timings, and the
graph depicting the data pictorially.
- Analysis.
In English, explain your timing results for ping pong on different
data types. You want to describe your observations about the way
the timings vary as the length of messages increases, as well as how
the timings vary between the different data types.
-
Conclusions:
This section consists of a discussion of what you learned from the various aspects
of the lab. Discuss possible reasons for inconsistencies or discrepancies
in your data versus what you would have expected to happen.
-
Appendix:
The code for the modified Ping Pong program for one single data type.
Please staple all parts of your lab together, and label each piece.
Be prepared to discuss your results on the day that the assignment is due.
This document was generated using the LaTeX2HTML translator Version 95.1 (Fri Jan 20 1995) Copyright © 1993, 1994, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
The command line arguments were:
latex2html -split 0 lab1.tex.
The translation was initiated by Lori Pollock on Wed Feb 11 21:39:47 EST 1998
Lori Pollock
Wed Feb 11 21:39:47 EST 1998