Cluster Computing
Assignment 1: Dessert Map

Story

Assignment

Competition Rules

Deadline

Sequential Code


Story:

Wile E. Coyote need to catch that road-runner, the RoadRunner is the only eatable thing in the dessert, it is that simple! We all know that a large variety of ACME equipment has previously failed Wile so now he need a new approach.

The first thing Wile must have to stand a chance to catch the RoadRunner is information on the dessert, precise information, e.g. a map that may zoom into any required detail. Fortunately this particular dessert may be described by a very simple mathematical function, also known as the Mandelbrot set. Unfortunately calculating the map is a large computing problem, and since we cannot apply any mechanical zoom techniques, we must generate a new image for each zoom factor of the desired map. Thus to get his information fast enough Wile need a fast mechanism for generating a map. To this end we need a map generator that can utilize more than one CPU.

 

The map of the dessert, first the initial map and then the final zoom



Assignment:

Write two parallel versions of the map generation code, you may use the sequential version below as a core. Both parallel versions should be based on a multithreaded shared memory model and execute on a multiprocessor with physical shared memory. One version should use a fixed orchestration approach, where orchestration can be defined either at compile-time or initially at run-time. The other solution should be based on a producer-consumer approach, which should define the number of workers either at compile-time or run-time.

The report should identify the various choices that has been made as well as individual techniques that has been applied to improve performance. And the impact of each should be documented.


Competition rules:

There is a multitude of techniques that can be applied to speed up the generation of fractal images in general and the Mandelbrot set in particular. This is an exercise in achieving parallelism, not in understanding fractals, thus the basic calculations of the sequential version must be preserved, e.g. the total number of floating point operations must be at least as large as in the sequential version.


Deadline May 10th.


Sequential Code

  Here! Library


Brian Vinter