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:

  1. the linda program,
  2. the program output using the input file from programming assignment 1,
  3. a discussion of the algorithm and considerations you made in selecting algorithm, (for example, goals, data tuple choices, worker responsibilities, managing synchronization and termination.)
  4. 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?
  5. 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?
  6. 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
  7. 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:

OR 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