531/735 Programming Assignment 2 - 20032
Due: Sunday, January 11, 2004
Purpose:
The purpose of this programming assignment to give you some experience
programming in a MIMD shared memory environment, i.e., using C-Linda.
A five point bonus will be awarded to the person who gets the best speedup
and the fastest time for execution on 8 processors.
The Game Of Life - Again
Write a C-linda program to play the Game of Life with the same specifications
as in programming assignment 1. I should be able to run the program using:
NOTE:Be sure to create the workers only once, not for each generation.
Process creation can be quite costly.
What To Submit
The hardcopy should include:
- the linda program,
- the program output using the input file from programming assignment 1,
- a discussion of the algorithm and considerations you made in selecting
algorithm, (for example, goals, data tuple choices, worker responsibilities,
managing synchronization and termination.)
- a discussion of how programming this exercise on a 16 node, 4-dimensional
hypercube would affect your code. What are some of the issues that arise?
- a timing study of this exercise being run on
1 - 8 processors (parasite/paradise OR
holly/hilly) and 1 - 16 processors on paranoia, if it's up. Parasite/paradise
and holly/hilly are 4 processor SMP fileservers while paranoia is a 16 node
cluster.
Separately graph the times, speedup and efficiency (on the y-axis) against
the number of processors being use on the X-axis, and discuss the results.
Please provide your results in table form as well.
Were your results what you expected? Did you notice a difference between
the two systems? If so, why do you think that's the case?
Did you achieve any speedup? Why or why not?
- a discussion comparing and contrasting programming this exercise
using parallaxis and C-linda. (You might consider doing this in table format.)
Include items such as SIMD/MIMD, memory type, ease of programming, flexibility in the types of programming that can be handled, whether or not topology must
be explicitly specified, and did the programmer have to be concerned about synchronization, termination and deadlock issues
in your discussion; and
- Discuss the positive effects you experienced, if any, with executing your
program on a REAL parallel system rather than on a simulator as used for
parallaxis.
You are to electronically submit a directory called lab2dir using the
following (which ever is appropriate) command:
submit -v ncs-grd 531lab2 lab2dir
OR
submit -v ncs-grd 735lab2 lab2dir
The lab2dir directory should contain
the source file, life.cl, a makefile, and
a READ_ME file, if pertinent. Please do not submit executable files.
The name of the executable file created should be life,
"made" by typing make life.
The grade sheet that will be used is located here.
Nan C. Schaller
Rochester Institute of Technology
Computer Science Department
102 Lomb Memorial Dr.
Rochester, NY 14623-5608
telephone: +1.585.475.2139
fax: +1.585.475.7100
e-mail:
ncs@cs.rit.edu
January 8, 2004