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 HyperThreading, Ultra Fractal will recognize it as a dual processor and split up its calculations accordingly. In most cases, this will result in a modest speed improvement. Otherwise, you can force Ultra Fractal to use just one processor.

Open the Options 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 processors 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 processors in your computer. 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. Each thread can run on a separate processor. By splitting calculations into multiple threads, Ultra Fractal ensures that all processors 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

Calculation details