distributed rendering using Apple Qmaster 3 – success!!!

Thanks to a fair amount of googling and a few days on and off of testing I seem to have a working setup for doing distributed processing using Apple Qmaster – for Shake, Maya and Compressor.

Here is my effort at explaining what I did to get it working – big apologies, it’s poorly written. I’ll revisit this post soon.

some notes on our workflow

Our current workflow for dealing with files/assets evolves around a directory structure that breaks each project up into shot numbers and the various departments we have etc..

Our xserve is the centralised area for our assets and the QMaster render manager.

Each artistâ€™s local machine has a directory somewhere that mimics the xServeâ€™s project directory structure for working locally (to keep network traffic down over gigabit ethernet).

I set up $JOBS_LOCAL and $JOBS_SERVER env variables on each machine and the xserve – these variables point to the relevant local project directory on the artist’s mac and the project directory on the server.

I created a python script that does a find and replace of the 2 variables and writes our a new shake script renamed â€œ*_SERVER.shkâ€, or â€œ*_LOCAL.shkâ€

(See further down for setting up the ENV variables.)

Centralised $NR_INCLUDE_PATH
I setup an env variable for $NR_INCLUDE_PATH for all Shake machines and the xserve – to look at a sharepoint (the nreal folder) on the xServe and automatically mount it – so all the Shake machines would be using the same macros/plugins and settings. I setup a new user on the xserve “shake” that can only mount the nreal directory.

QMASTERI had tried for some time to get shake scripts to render over our network using Qmaster but it just wouldnâ€™t work. The QMaster logs were where I found all my errors. â€˜frame 0021 could not be foundâ€™, â€˜UNIX error 3 file could not be foundâ€™

things to check

shake / maya / qmaster 3 node is installed on all render machines

the location of all your media can be accessed by all machines

What seemed strange was that if I logged into the xServe and executed a script via terminal with shake (to render just on the xserve) the render would complete successfully. Then it clicked that maybe the environment variables I was using in my scripts ($xxx) might not be getting recognised by Qmaster or the way Qmaster launches Shake??

â€œI have pinned this down to at least one reason – that the shake qmaster isn’t picking up the NR_INCLUDE_PATH environment variable. Does anyone know where you need to set this up on a cluster node (I can get the qmasterd to pick it up but that doesn’t solve the problem!) â€œ

If you are trying to use Qmaster, and need to set environment variables, then you need to create a wrapper script that sets the variables and then calls the appropriate version of shake.