Jump to content

Archived

This topic is now archived and is closed to further replies.

Guest kittonian

Creating a Render Farm (what hardware?)

Recommended Posts

THe 2GB / Thread rule is more important for software like AE that runs a copy of the app per thread. Cinema 4D doesn't need much more memory if the number of threads increases.

Share this post


Link to post
Share on other sites

Guest kittonian

Srek, according to the people at MAXON, if you want the best performance from a render machine you need to have 2GB of memory per thread. You don't need any more than 2GB per thread but less than that and you don't get optimum performance. They say 1GB per thread is the absolute minimum and that you won't see nearly the same performance as you will with 2GB per thread. This is from the people who created the software so I think I have to go with their information on this issue.

 

Chris, I was just going to do all 16GB chips and have 6 of them. I can't see why this would be an issue as you can add memory in pairs without a problem, but if you can provide real world data showing me slow downs I can always go with 128GB for around $400 more.

Share this post


Link to post
Share on other sites
Guest Chriscorr

Adding memory in pairs is because of dual channel. DDR4 is meant to be used in quad channel. Which means that if you don't have multiples of 4 modules installed you won't get the benefit from Quad Channel architecture.

 

http://www.legitreviews.com/ddr3-memory-performance-analysis-on-intel-x79_1779/3 This is on X79 with DDR3 modules, but the same should hold true for X99 with DDR4, even more so.

 

Very few things are memory bandwidth limited, I think rendering in C4D isn't one of them. So the real world benefit would be little. But getting this kind of system and then not having it run with quad channel memory is just silly.

Share this post


Link to post
Share on other sites

In case you weren't aware, Srek is one of those people at MAXON.

Share this post


Link to post
Share on other sites
Guest kittonian

Chris, got it. 128GB it is :) Thank you for that explanation.

 

JimH, now I just feel silly. I had no idea Srek worked for MAXON, so I suppose he knows exactly what he's talking about. Perhaps the guys in CA at MAXON that I spoke to the other day need to be brought up to speed as well because there are considerable costs involved with installing this much memory in a render node. If it doesn't make any difference, I'm going to save myself $879 and stick with 64GB of memory.

 

And, just to reiterate again, because I certainly don't want to sound unappreciative of anyone posting, especially someone from MAXON, my apologies Srek. I really appreciate someone who truly knows the ins and outs contributing to this discussion.

Share this post


Link to post
Share on other sites

No worries kittonian, in general it is a very good idea to listen to techsupport and questioning the input from random people on the internet. How this bit of information got mixed up, i don't know. Usually US techsupport is very savvy and their boss realy knows his stuff.

It has been my job for over ten years to provide international techsupport with base information like this though ;)

The amount of memory needed does not scale in a linear way with the number of threads or cores. Just as an example, if you need 4GB to render a scene using one thread, you might need 5GB if you use 4 or 8 threads.

You can actually check this easily yourself, just switch the number of threads used for rendering in the prefs and check how much memory the Cinema 4D process uses.

What happens behind the scenes is that Cinema 4D needs one big chunk of memory to prepare the scene for rendering and store temporary information and results. Then it needs a bit of extra memory per thread for the actual calculations.

Going for 64 GB is very much on the safe side imo, i'm just now ordering parts for my new PC at home and i will go for 32 GB. Until now i had only 16GB and never had a problem, but knowing that i will push i went for 32.

Maybe take the heaviest scene you have and just check memory consumption at rendertime to get an idea of how much you realy need, then add what you feel safe with :)

Cheers

Björn

Share this post


Link to post
Share on other sites
Guest kittonian

Srek,

 

Thank you for that. It makes total sense. 64GB it is. My pocketbook thanks you :)

 

You've now got me questioning some of the information I got from the guys in CA. Can you confirm/answer the following please (still images only - no animation)?

 

1. When using Team Render (not server) and you have two clients, I was told that at first it splits the load of the entire task equally (i.e. 50% for client #1 and 50% for client #2). Then if client #1 finishes its part long before client #2 it asks for more work. The point being that even though two clients are being used, one does not sit idle while waiting for the other to finish its tasks. Instead both machine are always working no matter how fast one might be over the other.

 

2. Same question as #1 but this time using server

 

3. When using the physical render engine you can still have as many clients and as many threads as possible all working together (i.e. there is no two bucket limitation as I have read elsewhere).

 

4. When using clients for Team Render (server or peer-to-peer) you should always "bake in" GI as different operating systems render slightly different results and the result could look bad.

 

5. Team Render clients download all assets necessary to do their work before doing anything else and then don't pass much of any data across the LAN. Therefore having multiple GB ethernet connections from a single render client doesn't help speed things up. They also said using wireless should be fine too, but we've tested that and it does not work. For us, the only way we could get Team Render clients to all turn orange was to have everyone hard wired over GB ethernet.

Share this post


Link to post
Share on other sites

1. TR for distributed rendering (single image rendered on several systems) will just use all available systems as long as it takes. For each client involved you should see two buckets.

If you use it for an animation all clients will render one frame each as long as there are frames, a single frame can not be distributed over several machines in this case (it would be very inefficient). If there are no more images left the clients will stop

2. To the best of my knowledge practically the same, but since i was only involved in TRS at the very beginning of the planning phase and had no time to get down and dirty with it i don't really know.

3. The two buckets shown per system use all available threads. They are two because it is more efficient than one or n (n beeing the number of possible threads). If it were only one the moment the render engine encounters something that can only be cvalculated using one thread the rest would sit idle. Using two buckets makes sure that all threads can be used optimally.

In other words the "two bucket limitation" just doesn't exist, it is only a misunderstanding from trying to apply old standard render know how to physical render.

4. Different OS or CPUs should not make any noticable difference. This was different when Apple still used PowerPC CPUs.

5. Since at the beginning all clients need all assets a WLAN is simply overwhelmed immediately if you have more than two clients. Keep in mind that on wireless all systems involved share the same little bit of bandwidth. TR has a P2P mechanism that allows clients to share assets without having to rely on the server, but due to the shared bandwidth on WLAN this only helps with wired connections in a switched network.

Hooking all clients and the server to a GB Switch over seperate lines is the only thing you should do, except if you have 10GB ;)

Share this post


Link to post
Share on other sites
Guest kittonian

Srek, thank you so much for those explanations. Now it all makes a whole lot more sense. These questions are core to the understanding of how C4D renders, especially when using Team Render (client or server). It would be great if there was some more serious documentation explaining all of this, and of course training the guys in CA who seem a bit confused on these issues. Hopefully this thread and your answer can kickstart that idea.

Share this post


Link to post
Share on other sites
Guest kittonian

Btw, one other question regarding how Team Render (whether P2P or via Server) would handle a client failure during a render. Basically the question is, if you are in the middle of a render and one of the render machines fails, does the entire render fail or do the other machines end up getting the information that has not yet been passed back to the initiating machine (again, whether it's a Team Render Server or the initiating client in a P2P scenario)?

Share this post


Link to post
Share on other sites

From all i know TR should cover that situation, but i have little to no practical experience with TR. It wasn't my project and i render very little.

Share this post


Link to post
Share on other sites
Guest kittonian

Is there any possibility of you being able to confirm that with someone at MAXON who would have this information?

Share this post


Link to post
Share on other sites

  • Recently Browsing   0 members

    No registered users viewing this page.

YOUTUBE CHANNEL:

ABOUT US:

C4D Cafe is the largest CINEMA 4D community. We provide facilities for discussion, showcasing and learning our favorite software :) Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, get your own private messenger, post status updates, manage your profile and much more. If you need to find solution to your problem or otherwise ask for help, Cafe is the right place.
×
×
  • Create New...