Is it possible to run a HB image base simulation with multiple CPU for artificial lighting design?


We’ve been working with grid base simulation for a while and now we want to use radiance to generate ‘quick’ image of artificial lighting design but when using multiple CPUs the image seems to be divided and doesn’t look good. While using 1 CPU achieves the objective the time is too slow.

Any suggestions?

Thank you.

Juan Carlos

Image-based analysis does run in parallel in Honeybee. Juan, can you share an example of what’s happening in the results? Does it work fine without electric lights?

Thank you Omid and Mostapha.

I am attaching a few pictures of how the results look using multiple CPUs.

The one without artificial lighting seems to no have the issues of breaking the image in multiple ones. The radiance setting are extremely low.


Many thanks Mostapha for catching that.

Hi Juan,

Radiance, the calculation engine employed by Honeybee to do lighting simulations, has different sets of optimization algorithms for calculating diffused and direct light. Keeping everything else in the model same, if only the lights are increased, any amount of additional direct lighting is likely to affect the accuracy of your rendering (and therefore deteriorate your rendering).

Below are two renderings with all the same parameters.

Now, consider this case. The first image contains a model with daylight only.

The second image contains a model with daylight and electric light (inside the room).

As you’d notice in this case there is virtually no difference between the two images. This can be attributed to the fact that the electric lights do not really impact our perception of brightness in this rendering(as daylight is brighter).

As a rule of thumb, it is advisable to crank up the rendering settings in case you increase the light sources in your field of view. You can tweak the settings based on this look-up table as well

Thank you Sarith!

We did play with the radiance setting and we crank them up and the images look really good.

Also, we got specially good renders following the recommendations of -dt 0.03 and -dc 1 fromRadiance discussion

Sarith and Mostapha,

I have another question. What is the difference between the first rpict when it gives the number of rays, % and time.

When only 1 CPU is used and

That second step that does use multiple CPU.

Is there a way of optimising the first part or that can only be done with one CPU?

Thank you.

Hi Juan,

This relates to ambient calculations, and more specifically overture calculation. I had checked with Mostapha about this a few days back. Have a look at this presentation from slide #62 onwards.

The multi-processor functionality that we see with Radiance in Honeybee is actually a clever hack that Mostapha had written. Image-based simulations in Radiance only run on single core in Windows machines. The idea of running a multiple core simulation relies on generating multiple images and then joining them together. These separate simulations are prone to errors due to sync issues on Windows.

It makes sense to do the overture calculations on the entire image (hence a single core) as the nature of ambient calculations is such that diffuse inter-reflections from different parts of the scene will affect each other. Once we save the ambient file from the overture calculation, the final simulation can be run on multiple cores (in which the case the simulation is split into n # of separate image-based simulations which are ultimately combined into a single image).


1 Like

Thanks Sarith, that helps understand a bit better.

Is there a way to not run the overture calculation at all. Since what we want is to produce quick but good enough renders of multiple scenarios and that calculation seems to be the choking point.


Not sure if that’s a good idea but you can do it by passing runOverture=False to writeBatchFiles.