Title: Using multi-threaded systems for standard (convergent) IFS calculation Post by: David Makin on December 13, 2015, 02:46:36 PM Hi all,
For multi-threaded calculation of IFS obviously you want each thread to be calculating independant sections of the IFS tree in such a way that the points generated by each thread overlap as little as possible. It just struck me that the best way to do this is create as many starting points as you have threads with the points being as separate as possible with respect to the IFS tree structure. So for example if you have a 2 transform system and 2 threads then start one from the attractor created by just transform 1 (i.e. 1o1o1o1o....) and the other from the attractor for just transform 2 (assuming both are convergent). If you have 4 threads then start them from the attractors for transforms 1o1, 1o2, 2o1 and 2o2, if eight then from the attractors for 1o1o1, 1o1o2, 1o2o1, 1o2o2, 2o1o1, 2o1o2, 2o2o1 and 2o2o2. When the #threads exceed the #base transforms then stepping down the tree in that manner to get attractor start points for each thread should work OK - but if the #base transforms exceeds the #threads then I'd guess picking the attractor start points that are most diverse of the ones available would be the best option (the same applies if you have say 6 threads and 2 base attractors - you'd go to the tree depth giving 8 possible attractors and pick the most diverse 6). Sorry if this is either gobbledegook or restating the obvious. Dave Title: Re: Using multi-threaded systems for standard (convergent) IFS calculation Post by: David Makin on December 13, 2015, 03:07:14 PM Of course the above is simple if all scales/probabilities are equal but further consideration would be needed in choosing the starting points for varied scale/probability across the base transforms.
Title: Re: Using multi-threaded systems for standard (convergent) IFS calculation Post by: xenodreambuie on December 13, 2015, 11:27:07 PM It depends on which algorithm you're using (as well as whether you're talking pure affine IFS or combinations with other stuff).
For purely random choices it doesn't matter what IFS points you start with for each thread if the threads have independent RNG's. However, if they all used the same RNG and seed, the starting points would soon cease to make a difference as all threads would converge to the same results. For recursive tree iteration, yes you'd want significantly different seed points for each thread. Title: Re: Using multi-threaded systems for standard (convergent) IFS calculation Post by: David Makin on December 15, 2015, 10:09:46 AM <> For purely random choices it doesn't matter what IFS points you start with for each thread if the threads have independent RNG's. However, if they all used the same RNG and seed, the starting points would soon cease to make a difference as all threads would converge to the same results. <> Sorry, I should have been clearer - was only talking about deterministic methods for IFS not the chaos game ones, I no longer consider those of any real value. |