POV-Ray : Newsgroups : povray.beta-test : 3.7 SMP documentation : Re: 3.7 SMP documentation Server Time
28 Jul 2024 12:33:13 EDT (-0400)
  Re: 3.7 SMP documentation  
From: clipka
Date: 6 Apr 2009 20:30:00
Message: <web.49da9e064bf05309c28d169c0@news.povray.org>
"MessyBlob" <nomail@nomail> wrote:
> "clipka" wrote:
> > [radiosity]
> > ... (although it seems difficult to achieve full 100% reproducibility) ...
>
> Possibly the only truly reprocucible (and thread-safe) way is to iteratively
> process the whole scene, all threads working on the same iteration, then
> waiting for all threads to stop before moving on to the next iteration. One
> might need to back-propagate results (Iteration 1: depth 1; iteration 2: depth
> 2,1; iteration 3: depth 3,2,1; etc.)
>
> I realise this largely prevents optimised and dynamic sampling, but it's safe.
> I've not done any analysis on how efficient it would be. On the other hand,
> maybe it's possible to add a little bit of dynamic radiosity data: when there's
> an integrity clash, add the data, and then 'rewind' the older thread to use the
> new data. Only works with small additions at a time, to avoid circular
> triggering of the 'rewind'.
>
> Hoping the above might provide some ideas, assuming I've not completely
> misunderstood the problem.

The algorithm I devised *should* do the trick as well: It's 100% deterministic
regardless of thread count or scheduling "jitter". Theoretically. However, I
guess there are still a few variables not properly reset when a thread starts
working on the next SMP cell. Some caching mechanisms possibly. But those are
beyond the scope of radiosity.


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.