On a quiet veggie machine, download and untar the provided mandelbrot.tar file. Compile the sequential code using the makefile. Be sure to use the -O3 optimization flag. We don't want to set our sequential run up as a straw man. Run your sequential code 5 times for 1000 max iterations, assess which decimal digits of your timing info are significant, and record the rounded median time. Keep the Mandelbrot.pgm result file, so you can check the correctness of your parallel codes.
Now go into the code and add the OpenMP pragmas that will make this an efficient parallel program. Remember to make the variables that need to be private private. To compile it, you want to use the fopenmp flag, see the makefile.
Run it for 1000 max iterations using 1,2,3,4,5,6,7,8,10,12, and 16 threads. Collect execution time data in the now familiar way, and diff the .pgm file you get from this run with the one from the sequential run to make sure your parallel code is correct. Plot the run time, speedup and efficiency.
Observe your timing data. This will be the starting point of Discussion 2: Is the speedup linear? ideal? Make your plots machine readable, so that you can communicate these with your discussion group. At least have your tables available in a nice format, but preferably use gnuplot or excel.