Your task is to create two applications, which together renders parts of the Mandelbrot set 1 . One is a server that should accept requests on a HTTP interface. The other is a client, which should spread the workload over a set of servers

Job ID: 32536404

Budget: $10 – $30 USD

The server should accept a request that has this form, or something similar:
GET /mandelbrot/{min_c_re}/{min_c_im}/{max_c_re}/{max_c_im}/{x}/{y}/{inf_n}
In return, it should return a gray-scale image of dimension x times y, where each pixel corresponds to the number of iterations it takes, until |???? | > ??, ????+1 = ????2 + ??, ??0 = 0. The complex number ?? corresponds to the position in the image, with the real part being one dimension and the imaginary part being the other. The resulting pixel value for that coordinate is then the number of iterations modulo 256, and a maximum on inf_n iterations is performed.
An example. Assume that, for a particular coordinate, ?? = 0.5+0.7i. In the first iteration, ??1 = 0.5+0.7i. In the second iteration, ??2 = 0.26+1.4i. In the third iteration, ??3 ≈ -1.39+1.43i. ??4 ≈ 0.40-3.28i. As the absolute value of ??4 is greater than 2, the iteration ends, and the pixel value is 4.
The format of the image can either be simply a set of bytes, one per pixel, or for example a PGM image2 (a set of bytes, one per pixel, with a header).
The server should be capable of handle multiple calls, and it should be possible to specify which port the server listens to.
The client can be a command-line tool with these arguments:
min_c_re min_c_im max_c_re max_c_im max_n x y divisions list-of-servers
Example: -1 -1.5 2 1.5 1024 10000 10000 4 localhost:4444 localhost:3333 192.168.33.3:4444 This should divide the 10000x10000 picture in 4x4 sub-pictures, and spread the work to the three given servers. The output from the client should be a PGM image or other image format. Note that some parts of the picture will be significantly faster to render than others. You can of course use a very different interface, for example an HTTP interface also to the client.
Related categories: Website Design Cloud Computing HTML