CS 480 Introduction to Parallel Computing
Programming Assignment #4
Due: 11/18 12 pm.
- to use the information we have discussed to create a parallel
- use PVM on a SharedMemory machine
- practice using PVM group functions
- practice using synchronization primitives
- practice parallelizing an existing program
This assignment is to be completed individually.
Problem: Parallelizing a solution to the 2D heat equation.
You are to parallelize the heat2d.c program and get it to
correctly run on the OSC orgin 2000. To practice using group
functions, follow the following outline:
Use the master slave approach; where the master will:
- spawn the slaves
- for each time step:
- broadcast current temperature distribution to slaves
- collect results from slaves (use gather + barrier )
- collect the final computed solution - save to a file
Since C uses row-major ordering for arrays - you will want to
decomose the problem in a row-wise fashion ( as discussed in class
and in the text ). You must use the pvm_barrier function for the
synchronization amongst processes. As part of the assignment you
should collect data on how much time ( on average ) a process waits
at its barrier.
Use the following command line syntax to run your program
parheatmaster N Tinc Tfinal
- Where N is the number of processes to spawn
- Tinc is the time step increment
- Tfinal is the Length of the simulation
- Your final version must run correctly on the OSC origin.
Timing data must be obtained from runs on the Origin.
- To avoid buffer problems, use a grid size of 128x128.
- Run you program using 3 different numbers of processors (use
2, 4, 8 or 16) and compute the speedup obtained.
Some coding details.
a procedure will be made available to you which you can use to
create an image file from your final computed solution. Details to
In your ALPHA class directory, create a subdirectory called prog4.
In this directory place:
- a copy of the final programs parheatmaster.c,
- a text file containing:
- speedup results
- barrier timing results
- a brief discussion of why the suggested approach is not
optimal for this machine.
- an image file for two sample runs (include the runtime
parameters used in the report file)