Welcome to Fractal Forums

Fractal Software => Mandel Machine => Topic started by: Dinkydau on October 25, 2014, 10:56:49 PM




Title: Even greater depth
Post by: Dinkydau on October 25, 2014, 10:56:49 PM
Botond Kosa, do you think the maximum zoom depth can be increased even further without drastic loss of speed?


Title: Re: Even greater depth
Post by: Botond Kósa on October 26, 2014, 08:01:54 AM
Yes, unlimited zoom depth will be included in one of the upcoming versions.


Title: Re: Even greater depth
Post by: Botond Kósa on October 26, 2014, 12:11:27 PM
The speed reduction won't be drastic. The time to compute the reference orbit is proportional to zoom depth squared, but the perturbation calculations are almost independent of zoom depth.


Title: Re: Even greater depth
Post by: Dinkydau on October 27, 2014, 12:32:45 PM
Nice

The reference points are going to be the limiting factor in zooming, by far. I'm considering to try to sell my 32-core computer and get a simpler one with best as possible single-threaded performance.


Title: Re: Even greater depth
Post by: Botond Kósa on October 27, 2014, 01:57:35 PM
I have some plans to speed up reference calculation:

1. Currently each reference is calculated twice: first to determine the length of the orbit (to know how much RAM to allocate), and a second run to actually save the orbit and calculate the series approximation coefficients. These could easily be done in a single pass, resulting in a speedup close to 2x. I will have to migrate the SA initialization code from Java to C++/ASM.
2. At great zoom depths it may be feasible to calculate each full-precision iteration on multiple threads, as KFR already does. Each iteration consists of three squares and several additions, of which the squares are independent and could be done concurrently.
3. At even greater zoom depths asymptotically faster multiplication algorithms like Karatsuba or Toom-Cook could be used. (See http://en.wikipedia.org/wiki/Multiplication_algorithm#Fast_multiplication_algorithms_for_large_inputs (http://en.wikipedia.org/wiki/Multiplication_algorithm#Fast_multiplication_algorithms_for_large_inputs))

I plan to implement #1 in the near future and #2 a little later. Fast multiplications need further investigation to be applied to fractal calculations with fixed point numbers.


Title: Re: Even greater depth
Post by: Botond Kósa on November 17, 2014, 01:54:16 AM
The reference points are going to be the limiting factor in zooming, by far. I'm considering to try to sell my 32-core computer and get a simpler one with best as possible single-threaded performance.

Check out MM version 1.3.6, it calculates references up to 80% faster.


Title: Re: Even greater depth
Post by: Dinkydau on November 17, 2014, 12:20:10 PM
That's nice. Does it now compute the references only once?


Title: Re: Even greater depth
Post by: Botond Kósa on November 17, 2014, 01:06:43 PM
That's nice. Does it now compute the references only once?

Yes. The speed improvement doesn't reach 2x because the eliminated run was the quicker of the two: it was only used to obtain the length of the reference orbit, and the other, still performed run also saved the orbit values. When I originally wrote that part of code I didn't foresee that reference calculation would become a major bottleneck at great depths.