none
HPC Server Cluster as a render farm RRS feed

  • Question

  • I work for a college and have implemented a render farm using Windows 2003 Server and the render management software Qube to render Maya, 3ds Max and After Effects jobs. I have just started looking into upgrading the worker nodes (compute nodes) to Windows Server 2008 R2 Enterprise. And I have now come across Windows HPC Server 2008. I don't know much about it at this point but was wondering if a HPC cluster could provide the functionality of a Win2k3/Qube render farm, how much work it would require, and how difficult it would be to develop the different applications with a view to job submission? Qube already has customised submission dialogs.

    Also is there any documentation you can direct me to regarding this?

    Thursday, April 8, 2010 8:59 AM

Answers

  • Although it's still early days for us, we've got a render pipeline setup using MS HPC as the scheduler.  As for custom applications go, I've had some difficulty getting things "just right".  Currently, I have a python maya plugin that reads information from the current scene/project and writes values into what I refer to as a "JobSpec" file (it's really just a temp ini file). I think make an os.system() call in my plugin that passes the path of the temp file to an IronPython script, which parses the data, then submits a job.  The IronPython script uses the .Net HPC api to communicate with the scheduler.

    For 3dsmax submissions, I ended up having to implement a standalone app (written with the Qt python bindings) that does much the same as the maya plugin -- gathers a few bits of key information from the user and populates everything else for them (log locations, env vars, etc).  Send the resulting file to my IronPython script and the job goes about its business.

    The main issue at this point (for us) is that we are very much a python shop.  IronPython != Python, so any time we build applications we end up having to split the functionality between Python (the cool UI stuff) and IronPython (the HPC interactions).  Pretty soon, I'll be looking at ways to wrap the C++ HPC api and expose it to python so I can integrate everything and run all my code in a standard python interpreter, but that's going to take a while (if it's possible at all) since I don't have access to the HPC source code!

    While the code used here is ridiculously specific to our needs and not terribly configurable, it's available here: http://github.com/RCAD

    Maybe that will give you some ideas (which I'd love to hear about!)

    The ringling-render-tools project provides a single python package (rrt) which contains the standalone IronPython script, the python scripts we run as part of node prep/release tasks, and all the scripts we integrate with maya.

    The clustermon project is our experiments in building client applications for reporting, etc.  The idea there is to basically provide a front-end for the cluster powershell commands, parse the output, and present it to the user.  I'm also flirting with the idea of scheduling tasks to dump cluster from powershell to xml, then parse the xml from a django web app.  There are lots of possibilities, but none of them are "fun" for us.  If/when I can get native python to interact with my clusters, the sky will be the limit.

    Wednesday, October 6, 2010 6:33 PM

All replies

  • Sorry for disturbing you, but we have a question connected with rendering (3dsmax) on a cluster. We tried to use Virtual Vertex Muster but it doesn't had any effect.

    Please write me (ahriman@tpu.ru) if you can.

    Friday, April 9, 2010 3:45 PM
  • Although it's still early days for us, we've got a render pipeline setup using MS HPC as the scheduler.  As for custom applications go, I've had some difficulty getting things "just right".  Currently, I have a python maya plugin that reads information from the current scene/project and writes values into what I refer to as a "JobSpec" file (it's really just a temp ini file). I think make an os.system() call in my plugin that passes the path of the temp file to an IronPython script, which parses the data, then submits a job.  The IronPython script uses the .Net HPC api to communicate with the scheduler.

    For 3dsmax submissions, I ended up having to implement a standalone app (written with the Qt python bindings) that does much the same as the maya plugin -- gathers a few bits of key information from the user and populates everything else for them (log locations, env vars, etc).  Send the resulting file to my IronPython script and the job goes about its business.

    The main issue at this point (for us) is that we are very much a python shop.  IronPython != Python, so any time we build applications we end up having to split the functionality between Python (the cool UI stuff) and IronPython (the HPC interactions).  Pretty soon, I'll be looking at ways to wrap the C++ HPC api and expose it to python so I can integrate everything and run all my code in a standard python interpreter, but that's going to take a while (if it's possible at all) since I don't have access to the HPC source code!

    While the code used here is ridiculously specific to our needs and not terribly configurable, it's available here: http://github.com/RCAD

    Maybe that will give you some ideas (which I'd love to hear about!)

    The ringling-render-tools project provides a single python package (rrt) which contains the standalone IronPython script, the python scripts we run as part of node prep/release tasks, and all the scripts we integrate with maya.

    The clustermon project is our experiments in building client applications for reporting, etc.  The idea there is to basically provide a front-end for the cluster powershell commands, parse the output, and present it to the user.  I'm also flirting with the idea of scheduling tasks to dump cluster from powershell to xml, then parse the xml from a django web app.  There are lots of possibilities, but none of them are "fun" for us.  If/when I can get native python to interact with my clusters, the sky will be the limit.

    Wednesday, October 6, 2010 6:33 PM