Let me start by saying I am not a computer graphics professional. I am an IT systems professional who supports the students and faculty in computer graphics design programs. Our programs include architecture, computer animation, industrial design, interior design, and a few others. I currently maintain a few computer labs both Mac and PC and support many applications including the Autodesk and Solidworks products.
The challenges of rendering that I am trying to address are:
1. We do not have the budget to equip every computer lab machine with the high end hardware required for complex rendering. While we do purchase some, it is hard to ensure they are utilized properly and available to the right users. For instance I may only be able to equip 5 out of 20 computers in a lab with high end workstation graphics cards, and when I do they are often tied up by users who don't require the extra horsepower. I do not have or do not want to have to control access to seats in the lab based on application needs.
2. We can not allow users to begin a render and then leave the machine unattended. We also do not want a single person tying up multiple machines for a single project.
To try and solve these problems, I would like to build a dedicated rendering server. However, not being intimately familiar with the rendering process, I have many questions that I need answered in order to build the best machine I can.
Now that rendering is able to be offloaded to GPU via CUDA, how important is the main system CPU and RAM vs GPU and video RAM? Does the rendering process use both equality intensively? Is high video ram important for rendering still frames, or only animations?
My proposed system is configured with 2 6-core Xeons (12 cores total, ?24 with hyperthreading if supported?) and 48GB RAM. Will intensive rendering (either still or animation) consume all of those resources or will I have idle CPU and or unused RAM?
I have to decide how to configure the GPUs as well. I assume multiple GPUs will improve performance. I have selected a system that meets the bus and power requirements to host up to three Quadro 5000s or 6000s. It looks like there is only a small difference in CUDA cores between the two models, but a large difference in video ram (1.5GB vs6GB). With 48GB system RAM, how important is the video RAM?
How much of a factor is I/O? Should I take resources away from the CPU , system RAM, or GPU to increase I/O performance at all?
Finally, once this system is built I need to establish the protocol for accessing or submitting render jobs. Is this something that has to be initiated through a GUI, or is it possible to start a job through command line? I'd like to write a simple PHP based web script where a student could select any rendering attributes or options available and attache their source file. The job would then be automatically scheduled and an email could be generated to inform the student when their job is complete.
Being very unfamiliar with the rendering process, I don't know if this is something common, or not remotely possible. Any other ideas or suggestions would be greatly appreciated!