HPC Project 5:
Applying Patterns
The program in calcPI.c calculates an approximate value for PI.
However, a single process (i.e., process 0) is doing all the work.
This week's project is to use the patterns you have learned about
so far to speedup this computation as much as you can,
such that you can calculate PI to 17 digits of precision
"quickly".
This is not an especially difficult task, so this is a
one week project.
Once you have your parallel version of calcPI working,
use it to find how many trapezoids and processes are needed
to compute PI to 17 digits of precision "quickly".
Then use your program to collect the timing data needed for the 3D chart described below.
For these timing runs, you may use either the Ulab or the cluster.
Hand In
Hard copies of:

Your spreadsheet data and
three 3D barcharts  one showing your timing data,
one showing your program's speedup, and
one showing its computational efficiency
 with the Xaxis being 1, 2, 4, 8, 16, and 32 processes,
the Zaxis being 100000, 1000000, 10000000,
100000000, 1000000000, and 10000000000 trapezoids;
and the Yaxis being your program's runtimes,
speedups, and/or computational efficiencies
for the corresponding X and Z values.
As always, label your chart and its axes, and
format your chart so that it displays well when
printed on the Ulab printer.

A 12 page analysis of your program's behavior,
exploring the relationship between
the number of PEs and the number of trapezoids:

Discuss your projections on how long it would take
to calculate PI to 20 and 17 digits sequentially,
and how fast you were able to compute the 17digit value
using parallelism.

Discuss Intel's Parallel Advisor, what it revealed
about the runtime behavior of calcPI,
and how you used that information to parallelise the program.

Discuss your program's runtimes, speedups, and computational
efficiences, and explain how your observations correspond to
or disagree with Amdahl's and Gustafson's Laws.
Make your writeup as quantitative as possible,
and use your spreadsheet data and charts to support your comments.

A script file in which you use cat to list your program,
use make to show that it compiles correctly,
and then show that it can correctly compute
PI to 17 decimal digits "quickly".
Please staple these pages together and make certain that your name is on each page.
CS >
374 >
Exercises >
05 >
Homework Project
This page maintained by
Joel Adams.