Author Topic: Team Rendering takes more time than one CPU  (Read 2793 times)

2020-11-18, 17:05:35

LeSill

  • Active Users
  • **
  • Posts: 65
    • View Profile
Hello

I am trying to use team rendering for an animation but I am having some problems. First of all when I start rendering the animation in the VFB it works fine. As soon as I render I press TEAM RENDER TO PICTURE VIEWER I get an error about native cinema IES lights which are part of the native Cinema libraries. It is probably because they are not part of the Cinema Client. It is a shame but I can solve it by extracting the IES to another folder and place it back to the scene.

I wanted to render 75-250 frames. It started to calculate 162nd frame. WHY IT DIDN'T START FROM THE BEGINNING?

BUT the biggest problem I got is the TIME RENDERING using the team rendering. On my local machine is AMD Ryzen Threadripper 3960X. On the Client PC are two CPU Xeon E5-2650 v4. I have tested the same scene on both PCs and AMD Ryzen got faster than 2x Xeon about 40% - 50%. So I thought I will get shorter time when I do the team rendering and use all CPUs available. But by doing that I need longer time for one frame with using all CPUs than just with AMD Ryzen. I have checked the status of both machines in the TEAM RENDER MACHINE PANEL and the local machine got orange icon (working) and the Client got green (prepared but not working). When I checked the console it got messages, that the client is working in some passes and chunks. ANY IDEA HOW IS THAT POSSIBLE? This team rendering is really big issue. Especially for animations, when we don't see the progressing preview in the picture viewer like we can see in the VFB while calculating. I really like Corona and I have switched from Octane to that, but when I need to use distributed rendering I am thinking about Octane and how well this part worked there.

Many thanks for any ideas where could be the problem with the time per frame and the other issues.

2020-11-19, 09:14:39
Reply #1

mmarcotic

  • Former Corona Team Member
  • Active Users
  • **
  • Posts: 544
  • Jan - C4D QA
    • View Profile
Hello,

Regarding starting at frame X. Team Render takes the number of active machines contributing in the Team Render and, if I remember correctly, simply divides the number of frames evenly between the machines (e.g. 30 frames on 2 machines, main machine will start at 15, slave machine at 0). If the slave machine is slower and still has some frames left to be rendered, this process is repeated. (e.g. slave finishes 6 frames, main 15. Remaining 10 are distributed as 5 for main, 5 for slave). For simpler scenes or lower pass count, TR will actually be slower than regular render. For more complicated scenes, TR should always save time as it simply has more computing power and the losses created by communication between machines are lower than the gains created by more machines.
This is how animations with TR work, 1 machine will take 1 frame and not let other machines touch it. If one computer is significantly slower (e.g. for me, slave machine finishes 1 frame in 7 minutes, master in 1 minute), it can happen that the last frame is given to the slower computer and whole TR will wait for that one frame to finish (even though it would be faster if it just gave the frame to the faster computer)

If the second machine is showing as inactive (or waiting), I would recommend trying to simply restart it via Team Render Machines selection ("Restart All Clients...". That usually does the trick for me.
Additionally, check whether all your machines run on the same version of Corona.

Please, let me know if there are further questions,
Jan
Learn how to report bugs for Corona in C4D here.

2020-11-19, 09:53:35
Reply #2

LeSill

  • Active Users
  • **
  • Posts: 65
    • View Profile
Thank you for answer. I will test it again. The main problem was, that it looked like the faster/local machine didn't compute/produce any frame and the only computation was done by the slower client. But that didn't correlate with the opposite status in the Team render machine panel. I will test it again as soon as possible.

2020-11-19, 13:00:25
Reply #3

mmarcotic

  • Former Corona Team Member
  • Active Users
  • **
  • Posts: 544
  • Jan - C4D QA
    • View Profile
I can explain on an example from yesterday:

I have had a scene with 0-30 frame selection (31 frames then). Main computer chew through that in 62 minutes (average 2 minutes per frame). After starting a Team Render, slave machine had an average of 7 minutes and main still had a 2minute average. Total render time was 56 minutes. It does not seem very great even though I increased my computing power by +- 30% and the time was not 30% faster. Sometimes the communication actually slows it down.

Additionally, please note that the time in picture viewer on the right side (in Navigator>History) is actually incorrect for Team Render, since it just adds the times it took the individual frames to render, but disregards the fact that some of them were done simultaneously. Let's see that in an example:

Let's think I have a scene of 6 frames and two machines (mach1 takes 5min to render a frame, mach2 takes 1min to render a frame). The History will show as follows: 0 - 5min, 1 - 1min, 2 - 1min, 3 - 1min, 4 - 1min, 5 - 1min. If you add these together, it counts up to 10 minutes, but the fact that frame 0 was calculated simultaneously with frames 1-5, the total time it took is actually 5 minutes. The factual time is the real-time shown in the bottom left, which would show 5min right before the render finishes.
It is then very easy to think that the render took way too long if left overnight and not checked or attended thoroughly.

Hope this explains some of the issues.
Learn how to report bugs for Corona in C4D here.