PDA

View Full Version : Batch rendering single frame (mental ray) on network?


Theodocious
01-07-2009, 11:36 PM
sup. I'm trying to use multiple machines to render a single mental ray image. is this possible? not much experience with the command line but not afraid to use it... I tend to just render sneakernet w multiple frames (ie just split the frame output between pcs with the same project file) so an easier way to do that would be appreciated as well.

CurtJ
01-07-2009, 11:54 PM
Have you tried mr satellite? Works a treat for me on 3 machines - esp IPR.

Best if they're all running the same/similar OS'

Theodocious
01-08-2009, 12:51 AM
no, I've never used it. what's the workflow like? sounds good, I have 2 quads running vista 64 with a decent wireless home network (1.5 mbps). I have maya 64 on both.

CurtJ
01-08-2009, 07:26 AM
If you have a look through the forum you'll see that some users don't like it and some do - I've had more positives than negatives from it

The idea is that you have a master machine running Maya, and slave machines running satellite. Once satellite is installed (it's on the Maya install disk) and running as a service on the slave machines you'll need to make a text file called maya.rayhosts with the slave machine names (if you've got NAT enabled on your network) or IPs followed by a colon and the correct port number for the version of Maya you're using which you'll find in the docs. Just edit the maya.rayhosts file with a text editor. Mine reads as follows:

amilo:7109
amilo2:7109

According to the docs this file can go in two or three places, it always works for me if I place it in %USER%\maya\2009\prefs (on windows %USER% is 'My Documents').

Once you've done this, fire up Maya on your master machine, get task manager on screen of the slaves so you can keep an eye on them (they should have a service called raysat2009 running) - then render a scene in render view on the master and bask in the hum of CPU fans.

Note:
Exert caution if using for unattended batch rendering - batch renders will render frames sequentially (not distributed) so if one machine fails it will halt the batch process - and probably kill all of your other machines too.
Not sure how well it'll work over wireless - my network monitor often reaches 7Mb/s if using large textures or scenes
I think the master distributes all required files to the slaves - i.e. textures, refs, the scene etc - but just to be safe I use a NAS device for all files, mapped to the same drive letter on all machines
If a slave drops from the network during a Maya session, it'll crash Maya.
You can monitor the satellite(s) using the output window (after an initial render).
If you fire up a slave during a Maya session you can reread the maya.rayhosts file with the following command

Mayatomr -uh;
Firewalls can cause problems so will need attention.
Rendering small scenes can sometimes be counter productive - if you're working on a quick-rendering scene, close Maya, stop satellite on the slaves, then restart Maya.
Even though the 2009 docs tell me to use port 7109 for the slaves I get the following error when rendering, but it still works so I've not tried to fix it

MSG 0.0 error 011329: mi-ray/tcp: not a service (check %SystemRoot%\system32\drivers\etc\services)
MSG 0.0 warn 012219: using fallback inet service 7003


There are plenty of other quirks with it too, you just need to persevere. (And check the forum)

Hope it works for you.