As a step up from the previous Mandelbrot Set explorer, I’m running a Terapixel image experience for DWScript Christmas 2013.
This is again on the Mandelbrot set, and involves a massive step up in complexity from the previous version, this one isn’t just server-side computed, it’s “Grid Computed” 🙂 For the impatient, jump to the browser, or the contribute CPU time page.
The current goal is to reach Level 12 and reach the Terapixel barrier! What is level 12? The image is made of 256×256 tiles, each point in a tile stores the iteration depth in the Mandelbrot Set.
At level 0, there is only one tile (the one you see to the right), which is then subdivided at each level.
At level 1, there are 2^1 x 2^1 = 4 tiles of 256×256.
At level 2, there are 2^2 x 2^2 = 16 tiles of 256×256.
At level 12, there are 2^12 x 2^12 = 4096 x 4096 = 16777216 tiles of 256×256, or 1 Terapixel.
Server-side the data is compressed and won’t take a terabytes of storage, but Level 12 is still anticipated to end up at 10 to 11 Gigabytes.
Why the Mandelbrot Set
The Mandelbrot Set is a fractal, but it’s a very varied one. It is only self-similar and never repeats itself. There only one symmetry, along the Y axis.
The Mandelbrot Set reveals itself more the more computing power you throw at it, in two ways:
- the fractal is revealed as part of an iteration series, the more iterations you allow, the finer the details revealed
- more precision allows to go deeper, double-precision is a minimal, this is why many GPU-based implementations don’t look so good on regular hardware when you zoom (or aren’t so fast)
For instance the previous experiment (on the left) was doing 384 iterations, the new one (on the right) goes up to 65535:
The images come from a zoom level of 11 in the “valley” between the large cardioid and the main bulb. The right image is about 170 times more expensive to compute, so even when computed server-side on fast CPUs, it can’t be computed interactively anymore.
Next: Grid Computing, API, Technical Details
4 thoughts on “A Terapixel Image for the DelphiWebScript Christmas!”
It seemed like Level 13 was almost completed yesterday and then earlier today the finished percentage jumped back quite a bit. Was there a section that had to be re-processed?
For Level 13, the “very low complexity” tiles were tagged to be processed server-side, but there was a bug which had the high complexity tiles be tagged as well…
These were added back for processing, just about a couple millions of them, but they’re all high complexity tiles, hence the lower compute rate per tile (a future improvement would be to have statistics in terms of MegaFlops, which would be more immune to that), they’re also all larger in terms of bandwidth (a few hundreds of gigabytes of data), so the server I/O is also getting bottle-necked.
Opening the Grid Computing page http://mandelbrot.dwscript.net/compute/ I get an error, “Warning: Unreachable code [line: 9, column: 1] Syntax Error: T…” (The rest is cut off.) Although it looks like text, I can’t select and copy/paste it, it might be in an image. The text below that is “Starting…” but nothing happens.
I’m using Chrome on OSX Mavericks, all updated.
Fixed. The Level 13 has been completed and the experiment ended for now, as I’ve reached my storage limit server-side. You can now browse the image at http://mandelbrot.dwscript.net/
I’m attempting to recompress the data, so performance won’t be top notch in the short-term.
Comments are closed.