Difference between revisions of "CSC352 Game of Life Homework 2"

From dftwiki3
Jump to: navigation, search
(Format of the Text File)
(Code)
Line 50: Line 50:
 
<br />
 
<br />
 
Feel free to use this 2-thread solution program [[CSC352_Game_of_Life,_2_Threads|solution program]] for inspiration.
 
Feel free to use this 2-thread solution program [[CSC352_Game_of_Life,_2_Threads|solution program]] for inspiration.
 +
<br />
 +
=Measuring Performance=
 +
<br />
 +
Measure the ''speedup'' of your program for
 +
* 2, 4, 8, 12, 16, 20, 32, and 64 threads.  Use a dish file that contains at least 128 lines of cells.
 +
* 10, 1000, and 10,000 generations.
 +
<br />
 +
=Graph the speedup curves=
 +
<br />
 +
Use the graphing package of your choice to display the speedup curves.  Save a graph as a png or jpg file.
 
<br />
 
<br />

Revision as of 16:55, 28 February 2017

--D. Thiebaut (talk) 16:06, 28 February 2017 (EST)


Problem 1


Write a threaded java program that computes the generations of the game of life. The program should get 3 different pieces of information from the command line:

  1. The number of threads it must generate
  2. The number of generations it must compute
  3. The name of the text file containing the first generation, i.e. the first "dish."


Format of the Text File


The original dish is stored in a text file using the following format:

"                                                                                  "
"   #                                                                              "
" # #                                            ###                               "
"  ##                                                                              "
"                                                                                  "
"                                                      #                           "
"                                                    # #                           "
"                                                     ##                           "
"                                                                                  "
"                                                                                  "
"                                                                                  "
"                                                                                  "
"             #                                                                    "
"           # #                                                                    "
"            ##                                                                    "
"                                                                                  "
"                                                                                  "
"                                                                                  "
"                                                                                  "
"                                                                                  "
"                                                                                  "
"                                                                                  "
"                                                                                  "
"                                                                                  "
"                                                                                  "
"                                                                                  "
"                                                                                  "
"                                                                                  "

Each line of the dish array is defined by 2 double quotes. The first double-quote defines the beginning of a row of characters representing cells, spaces for dead cells, and #-signs for live ones.
There can be any number of lines in the text file, and their length can be different from the length shown above. Normally, though, all lines will have the same length.

Code


Code your program to be as simple as possible. Try to avoid excessive communication and excessive copying of data.
Feel free to use this 2-thread solution program solution program for inspiration.

Measuring Performance


Measure the speedup of your program for

  • 2, 4, 8, 12, 16, 20, 32, and 64 threads. Use a dish file that contains at least 128 lines of cells.
  • 10, 1000, and 10,000 generations.


Graph the speedup curves


Use the graphing package of your choice to display the speedup curves. Save a graph as a png or jpg file.