Version: Deadline 7.2
Path mapping is a subtle, often over-looked and super helpful feature of Deadline. It’s easily forgotten about but I’d say it’s essential for farms with mixed operating systems. It can even come in handy if you have Slaves spread out over multiple locations or Slaves that are in the cloud.
Today, I’m going to shed some light on path mapping by going through a basic example across a Mac, Linux and Windows PC.
This won’t be a comprehensive look into path mapping. Some plugins will do things like map paths of assets they need; things like that. That sort of thing will be covered in a future post. This post is all about the basics.
Basic Concept and Example
The concept behind path mapping is pretty simple. Basically, it replaces a portion of a file path with a valid path of the current operating system. Let’s take a look at this detailed example.
I’ve got a Maya scene called ‘simplePathMapping.ma’ and it’s on our file server here at the Thinkbox offices called ‘fs-01’. I’m on my Windows workstation (developer-image) and I’m going to submit this job to our farm. I’m using the Deadline Monitor submitter for this but it doesn’t matter what kind of submitter you use. You can see that my paths to my Project Directory, Maya File and Output Folder are all Windows paths. Those aren’t going to work on Linux or Mac.
To fix this, open the Deadline Monitor and enter Super User Mode. Then select Repository Options from the Tools menu, and select the Mapped Paths page on the left hand side. This dialog will show you a complete list of all your mapped paths. You can add new ones, remove no longer needed mappings, and edit existing ones.
I’ve mounted the file server on both my Linux Slave and my Mac Slave and have created a group mapping that replaces the beginning of those paths.
You’ll notice some other options here that I’m not using. Mapped paths can be case sensitive if casing is a problem. Also, you can use regular expressions to match and replace text.
Mapped paths are also ‘Region Aware’, which means that you can choose to have them only affect regions of your choice. This is useful if you have a distributed farm across multiple locations. For example, let’s say you have Windows Slaves in LA and the UK. Your Slaves in the UK region can map their paths differently from the ones in LA region. You can also do the same thing for Slaves that are in the cloud. I’ve set region to ‘All’ so that it will apply to all of my Slaves regardless of their region.
When my Linux Slave (eric-maya-slave-centos) picks up that job it swaps out the “//fs-01.wpg.thinkboxsoftware.com/public/” part of the path and replaces it with “/mnt/fs/”. You can see it happening in the logs. I’ve highlighted it in red. The arguments being sent to Maya have been swapped too. You can see them highlighted in green.
You can see the same thing happening on my Mac Slave (neutrino).
Another nice feature of path mapping is that your Monitor will also use it when you try to view the output of your jobs. Here you can see my Monitor on Mac. Notice that the output path has changed when I go to view the output.
Here you can see the end result. 3 of my tasks have been completed by 3 different machines on 3 different operation systems. You can see they’ve all outputted to the correct location too.
Those are the basics of path mapping in Deadline. As I mentioned before, path mapping is a powerful feature of Deadline and can be used in even more ways than I’ve shown here. Plugins can use it to get the location of assets, mappings can be region specific and you can even use regular expressions to match your paths. So give path mapping a shot! It’ll make your cross-platform, distributed rendering life much easier.