[Radiance-general] New rtcontrib?

Greg Ward gregoryjward at gmail.com
Fri Aug 10 08:41:48 PDT 2012


Functionally, the rcontrib replacement of rtcontrib is meant to be identical.  The only real difference should be performance.  There is a minor exception to this, which is that rcontrib *requires* the -bn option when -b is anything but "0".  This was always good practice before, and now it is enforced.  All the options and behavior is otherwise the same.

Under the hood, the code has changed dramatically.  Before, rtcontrib was a separate process that would call rtrace with either -oTW or -oTV options, generating a huge trace tree that would have to be interpreted by rtcontrib.  This was slow under the best of circumstances, and got much slower as rtrace processes were added using the -n option.  The rtcontrib process ended up being a major bottleneck.  The new code is a single program that forks copies of itself to do the ray-tracing, summing up contributions in each child process.  This avoids the inter-process communication, memory overhead, and aforementioned summation bottleneck of the original.  I have also added optimizations for when -c is greater than 1 by further batching summations in child processes and reducing communication overhead that way.  If you aren't getting linear speed-up with a particular scene and -n setting, increasing -c should get you there.

We have done a fair amount of testing to where we feel pretty confident there are no major bugs in the new code, but feedback is welcome.  Lars and I are currently trying to track down some anomalies he's seeing in testing, but by the time of the workshop things should be sorted out if not sooner.

Cheers,
-Greg

> From: "Guglielmetti, Robert" <Robert.Guglielmetti at nrel.gov>
> Date: August 10, 2012 7:32:01 AM PDT
> 
> Hi Jack,
> 
> AFAIK, the only summary is the diff between the rtcontrib and rcontrib
> manpages, and a blurb in the release notes. Greg and Andy can surely
> provide more details...
> 
> 
> Rob Guglielmetti
> 
> 
> On 8/10/12 7:18 AM, "Jack de Valpine" <jedev at visarc.com> wrote:
> 
>> Hi Rob, Lars and Marija,
>> 
>> I will hop in on this and ask is there any summary or comparison of
>> functionality between the two tools?
>> 
>> Thanks,
>> 
>> -Jack
>> 
>> 
>> On 8/10/2012 9:12 AM, Guglielmetti, Robert wrote:
>>> Hi all,
>>> 
>>> Marija, yes, the new rcontrib is in the HEAD, and is available in the
>>> latest NREL binaries. Lars, the symlink is only created by the makeall
>>> script. If you use the NREL binaries, rtcontrib is really rtcontrib, and
>>> rcontrib is rcontrib. Clear as mud, eh? Greg, you should have named
>>> rcontrib "totally_different_coefficient_calculator". =)
>>> 
>>> - Rob
>>> 
>>> ________________________________________
>>> From: Lars O. Grobe [grobe at gmx.net]
>>> Sent: Friday, August 10, 2012 6:11 AM
>>> To: Radiance general discussion
>>> Subject: Re: [Radiance-general] New rtcontrib?
>>> 
>>> Hi Marija!
>>>> I suppose new version is available in HEAD source code version? Is it
>>>> called 'rcontrib' or 'rtcontrib'?
>>> The new one is rcontrib, but there is a symlink named rtcontrib pointing
>>> to it, so you do not need to change your scripts.
>>> 
>>> Cheers, Lars.
>>> 
>>> _______________________________________________
>>> Radiance-general mailing list
>>> Radiance-general at radiance-online.org
>>> http://www.radiance-online.org/mailman/listinfo/radiance-general
>>> 
>>> _______________________________________________
>>> Radiance-general mailing list
>>> Radiance-general at radiance-online.org
>>> http://www.radiance-online.org/mailman/listinfo/radiance-general
>> 
>> 
>> _______________________________________________
>> Radiance-general mailing list
>> Radiance-general at radiance-online.org
>> http://www.radiance-online.org/mailman/listinfo/radiance-general
> 
> 
> _______________________________________________
> Radiance-general mailing list
> Radiance-general at radiance-online.org
> http://www.radiance-online.org/mailman/listinfo/radiance-general



More information about the Radiance-general mailing list