Calculation details

Tip: This slightly technical topic explains how multi-threading in Ultra Fractal works and how its settings can be adjusted. However, you don't need to know this in order to work with Ultra Fractal.

Ultra Fractal is fully multi-threaded [1] and can take advantage of multi-processor computers to speed up fractal calculations. This is done by splitting the fractal into multiple parts so the processors can work on each part in parallel. You can even distribute calculations to other computers with the network calculations feature.

This works well with most Mandelbrot-type fractals, where each pixel of the fractal can be calculated independently. However, with fractal types such as IFS and Flame Fractals [2], the entire image is calculated in one step and it cannot be subdivided. Therefore, multiple processors and network calculations will not speed up these fractal types. In Ultra Fractal 3, rendering these fractal types was not recommended, but that limitation does not apply anymore. (Formula authors: see the render setting.)

If you have a processor with Hyper-Threading, Ultra Fractal will recognize this and split up its calculations accordingly. In most cases, this will result in a significant speed improvement. Otherwise, you can force Ultra Fractal to use just one processor.

Open the Preferences dialog and go to the Fractal tab. In the Advanced calculation options area, the Minimum number of threads option sets the minimum number of threads that Ultra Fractal will use for a single fractal window. If this is set to 1, calculations will not be subdivided. Typically, this should be set to the number of processing cores in your computer.

Ultra Fractal will typically use one thread per layer. If the number of layers is low, extra threads will be added (subdividing one or more layers) to reach the minimum number of threads setting, which ensures that all processors are used. However, if there are many layers, this would create a large number of threads, which would saturate the system.

The Maximum number of threads option limits the number of threads for a fractal window, making sure that complex fractals will not start an unlimited number of threads. By default, this is set to four times the number of processing cores in your computer; but with a maximum of 8 (or the number of processing cores, whichever is larger) to avoid using too many CPU resources. If you would like more layers to be calculated simultaneously, you can increase this setting.

[1] A thread is an independent part of a program that can run on a processor core. Each thread can run on a separate core. By splitting calculations into multiple threads, Ultra Fractal ensures that all processor cores in your computer are used efficiently.

[2] To use IFS and Flame Fractals, you first need to download the set of public formulas from the online formula database. Select Pixel in mt.ufm as the fractal formula and either Iterated Function Systems in mt.ucl, or Flame Fractals in enr.ucl as the outside coloring algorithm.

See Also
Fractal windows
Playing animations