CPU Render - Render Tiles Distribution

LFGFX3D
Enthusiast

CPU Render - Render Tiles Distribution

LFGFX3D
Enthusiast
Enthusiast

I have a 16-core CPU. As expected, all 16 cores (32 threads) are engaged at first. Each 64x64 size tile is assigned to 1 thread. When the render gets to the last 32 tiles, as those tiles finish, the CPU still shows all 32 threads busy. Does Arnold take the threads from those last finished tiles and distribute them among the remaining ones?

 

For example: last 32 tiles are rendering (one 64x64 tile per thread) and 12 tiles finish leaving 20 tiles left. Does Arnold take the "free" 12 threads and put them to work on the remaining 20 tiles?

 

According to CPU utilization, that's what's happening because all 32 threads are busy even when there are only 20 tiles left. But I thought that once a tile of a certain size is assigned to a CPU thread, it cannot be modified. If that's the case, why is Arnold keeping all the threads busy if only 20 are actively rendering?

 

Also, if Arnold does assign the last "free" threads to the remaining tiles, those tiles should finish rendering significantly quicker but that does not appear to be the case.

0 Likes
Reply
Accepted solutions (1)
427 Views
1 Reply
Reply (1)

thiago.ize
Autodesk
Autodesk
Accepted solution

If Arnold has more threads than buckets, then yes, multiple threads (cores) can help out on the same bucket. It does improve render time but keep in mind the last buckets to finish are sometimes the "hard" regions to render (quick to render buckets would have of course finished earlier) which means they'll take longer to finish.

0 Likes