kutny.net


Content:
Distributed Mandelbrot

Distributed Mandelbrot

Download link: download [369 KB]

About

For one school subject we made a presentation on grid computing. While my partner did the presentation and documentation, I did this demo application. It is a Mandelbrot fractal set visualization program. The interesting thing about this is, that it distributes the computation of the fractal. The application consists of two programs: the Viewer - provides user navigation through the fractal and displays the fractal. The Viewer also acts as a distributed computing server - it divides the screen into smaller parts, distributes the computation to many clients then gather and displays the results. The server opens a listening TCP socket wher clients connect.

The client connects to the server and requests a task. The server sends rectangle coordinates of a portion of the fractal to compute to the client. The client then begins computation. When the client is done it sends the result back to the server which immediately displays it.

This image shows how it works...

Distributed computation of the Mandelbrot fractal.
Distributed computation of the Mandelbrot fractal.

...and how it looks like...

Distributed Mandelbrot fractal Viewer/server.
Distributed Mandelbrot fractal Viewer (the server app).

Both the client (computer) and the server (viewer) were written in C++ and use pure WinAPI. The network communication client/server protocol is based on TCP sockets and was implemented using Winsock.

Usage

  • Use the download link on the top of this page, download and unzip anywhere.
  • Should run on any version of Windows.
  • Run the server first: viewer.exe.
  • Then run the computing client on as many machines as you can/like: computer.exe [host].
  • If the clients keep running it means they are connected.
  • Use arrow keys (or W, A, S, D) to navigate the fractal. Use numpad plus (or R) to zoom-in and numpad minus (or F) to zoom out.