Computer Science Honours 2011

Distributed & Parallel Processing
Practical One: Java Threads

Mandelbrot Fractal using the Concurrency Package

For the practical exercises in this course, you may work individually or in pairs.  If you choose to work with a partner, please hand in a single submission with both of your names on it.  In this case, ensure that you have contributed your fair share to the solution, otherwise you will lose out on your understanding of the course, and this will reflect in your final examination performance.

Use the executor mechanisms in java.util.concurrent to parallelise the Mandelbrot program.  You should use the Callable/Future approach to control the returning of the results from the worker tasks to the main rendering thread (i.e. the worker threads should no longer call the "display" method directly).  You will need to study the Java documentation for the ExecutorService interface and the Callable interface, as well as the Executors class (the Java documentation).

To Hand In:

You should submit the modified Mandelbrot program, suitably commented, and with the changes that you made highlighted.  Discuss your choice of executor service, mentioning your reasons for selecting the one you used (a suitable comment in your code is fine for this).