Botond Kósa
|
|
« Reply #30 on: February 12, 2014, 08:28:47 PM » |
|
I doubt that it is only because of the use of assembler that made your Mandel Machine more than 6 times faster than mine Kalles Fraktaler. Are you able to skip more pixels with Series Approximation?
I see that Kalles Fraktaler skips 33097 iterations on Dinkydau's Tick-tock location, while Mandel Machine skips 38608. With an average iteration count of 43390 for the whole image, that means an average of 10293 computed iterations per pixel in KFR vs. 4782 in MM. This alone accounts for a twofold speed improvement. Series approximation in MM is based on 5 coefficient series instead of 3 suggested by Kevin Martin's original article. The first 4 series are used to approximate the deltas, the fifth is for finding the maximum skippable iterations: when any of the first four terms in equation (2) becomes only one magnitude or less greater than the fifth term, we cannot skip more iterations. (There are some additional conditions to check, but this is the main principle.) I also experimented with 6 coefficient series, and it produced only insignificant gains, but made the initialization of series approximation more time consuming.
|
|
« Last Edit: February 12, 2014, 08:35:08 PM by Botond Kósa »
|
Logged
|
|
|
|
Botond Kósa
|
|
« Reply #31 on: February 12, 2014, 08:51:34 PM » |
|
Or did you find other ways to optimize the render?
One simple way to speed up the calculations is what I named "Ignore small addends" feature under the Heuristics options. Analysis of the d n series in perturbation method shows that the magnitude of d n grows more or less linearly from d 0 to the bailout value. Since d n is represented in double precision, when d n is more than 10 16 times larger than d 0, d 0 can be omitted from equation (1) without affecting the value of d n+1. This can be done almost always if series approx is used, except in the vicinity of minibrots.
|
|
|
Logged
|
|
|
|
Botond Kósa
|
|
« Reply #32 on: February 12, 2014, 09:05:27 PM » |
|
Recently I loaded the my location Tick Tock from Kalles' collection of locations on my computer with 32 cores.
Wow, your computer is quite a beast! I will have to alter Mandel Machine to fully utilize all the cores. What kind CPUs do you exactly have?
|
|
|
Logged
|
|
|
|
Dinkydau
|
|
« Reply #33 on: February 12, 2014, 09:23:18 PM » |
|
Yes, I bought this almost 2 years ago to render faster with fractal extreme. (Back then I actually paid €2200 for a 5,5-fold speed-up compared to my previous computer, and now there's a more than 100-fold speed-up for free.) It's two amd opteron 6272 CPUs.
|
|
|
Logged
|
|
|
|
Kalles Fraktaler
|
|
« Reply #34 on: February 12, 2014, 09:37:45 PM » |
|
Thanks for your tips! I just tried your program and it is impressive. I guess you split up the image and do serial approximation on every parts to find more pixels to skip? I don't think I could have contributed much on what you already achieved. But maybe I can contribute more on glitch-solving. I put a series of images in my thread, showing the behaviour of the smoothing coefficients, that I hope can be useful. http://www.fractalforums.com/index.php?topic=16402.msg69818#msg69818
|
|
|
Logged
|
|
|
|
Botond Kósa
|
|
« Reply #35 on: February 12, 2014, 10:07:36 PM » |
|
I guess you split up the image and do serial approximation on every parts to find more pixels to skip?
Do you mean skip pixels or skip iterations? Pixel skipping is done by "Pixel guessing", the result can be seen by clicking the "Hide guessed pixels" checkbox under Rendering. Pixel guessing also works when perturbation method is not used, and even on areas that are not flat but monotonic. This is made possible by the Mariani/Silver algorithm (see http://mrob.com/pub/muency/marianisilveralgorithm.html), a divide-and-conquer algorithm. Guessed pixels are filled with interpolated values. Iteration skipping is done by series approximation. I use one skip value for the whole image, the value is displayed under Statistics -> Iterations/Pixel -> Skipped. Iteration skipping could be done locally for smaller parts of the image. I plan to investigate that in the future.
|
|
|
Logged
|
|
|
|
Botond Kósa
|
|
« Reply #36 on: February 12, 2014, 10:14:05 PM » |
|
Sure.
ellarien, I couldn't make the program hang at the location you sent. Could you reproduce it and describe the exact circumstances? A screen capture showing the Statistics and History panels would also help.
|
|
|
Logged
|
|
|
|
youhn
Fractal Molossus
Posts: 696
Shapes only exists in our heads.
|
|
« Reply #37 on: February 12, 2014, 10:28:41 PM » |
|
Last two evenings the program's first version crashed several times. Any debugging function we can turn on to assist in finding and killing them?
Latest version still to be tried here for a decent amount of time. Now back on Linux ... so not possible. I'm not a programmer, but maybe I can help in any other way to create a Linux version?
|
|
|
Logged
|
|
|
|
Kalles Fraktaler
|
|
« Reply #38 on: February 12, 2014, 11:17:28 PM » |
|
Series approximation in MM is based on 5 coefficient series instead of 3 suggested by Kevin Martin's original article. The first 4 series are used to approximate the deltas, the fifth is for finding the maximum skippable iterations: when any of the first four terms in equation (2) becomes only one magnitude or less greater than the fifth term, we cannot skip more iterations. (There are some additional conditions to check, but this is the main principle.) I also experimented with 6 coefficient series, and it produced only insignificant gains, but made the initialization of series approximation more time consuming.
So how does the formula for D[n+1] and E[n+1] look like? I am sorry but I don't fully understand the theory behind this, so I am not able to find these...
|
|
|
Logged
|
|
|
|
ellarien
|
|
« Reply #39 on: February 12, 2014, 11:21:51 PM » |
|
ellarien, I couldn't make the program hang at the location you sent. Could you reproduce it and describe the exact circumstances? A screen capture showing the Statistics and History panels would also help.
I just loaded the location, zoomed out a few times, then panned twice (while the screen was exhibiting a large 'glitched' area of flat colour) and it froze on the second time. Screen-snips attached. (768-pixel high screen, so I had to do it in pieces.) It happened just the same when I started clean and zoomed in until the perturbation theory started to fail, then tried to pan; after a bit of experimentation I think it only happens when panning after a glitch has appeared, and not always the first time -- sometimes it takes two or three tries. Interestingly, it seems to be only the computation that hangs -- everything else can be interacted with, including dragging the partial image around with a right-click and moving the scroll bars to look at the history and statistics.
|
|
|
Logged
|
|
|
|
Botond Kósa
|
|
« Reply #40 on: February 12, 2014, 11:27:26 PM » |
|
So how does the formula for D[n+1] and E[n+1] look like?
D n+1 = 2X nD n + 2A nC n + B n2E n+1 = 2X nE n + 2A nD n + 2B nC n
|
|
|
Logged
|
|
|
|
Botond Kósa
|
|
« Reply #41 on: February 12, 2014, 11:38:19 PM » |
|
I just loaded the location, zoomed out a few times, then panned twice (while the screen was exhibiting a large 'glitched' area of flat colour) and it froze on the second time. Screen-snips attached. (768-pixel high screen, so I had to do it in pieces.)
It happened just the same when I started clean and zoomed in until the perturbation theory started to fail, then tried to pan; after a bit of experimentation I think it only happens when panning after a glitch has appeared, and not always the first time -- sometimes it takes two or three tries.
Thanks, I am now able to reproduce the hang, I'm going to investigate it. Interestingly, it seems to be only the computation that hangs -- everything else can be interacted with, including dragging the partial image around with a right-click and moving the scroll bars to look at the history and statistics.
That's because the GUI is handled in a separate thread, in order to be able to interact with it during a computation.
|
|
|
Logged
|
|
|
|
Botond Kósa
|
|
« Reply #42 on: February 13, 2014, 10:10:34 AM » |
|
Mandel Machine v1.0.2 is now available. Changes: - FIXED: Application hangs when using perturbation method with such a low iteration limit that the whole image becomes one-colored
- FIXED: Computation cannot be aborted with ESC key during reference orbit calculation and series approx. initialization
|
|
|
Logged
|
|
|
|
Kalles Fraktaler
|
|
« Reply #43 on: February 13, 2014, 05:26:08 PM » |
|
Dn+1 = 2XnDn + 2AnCn + Bn2 En+1 = 2XnEn + 2AnDn + 2BnCn
Cool, thanks alot. I was told that more terms on (2) would not yield anything but obviously it does.
|
|
|
Logged
|
|
|
|
youhn
Fractal Molossus
Posts: 696
Shapes only exists in our heads.
|
|
« Reply #44 on: February 13, 2014, 10:57:30 PM » |
|
Finally rendered a somewhat bigger picture without crashes or freezes:
|
|
|
Logged
|
|
|
|
|