|On this page|
TOPs is designed to work with compute farms that may have a variety of different file systems. For example, a TOPs user could be on a Windows machine, but be using a Linux-based farm. The problem is how to map file paths from one file system to another. For example
\\allfiles\shot1\file1.bgeo.sc < →
/mnt/hq/shot1/file1/bgeo.sc. TOPs provides the PDG Path Map to address this.
You can chain the mapping rules. For example if
/mnt/hq maps to
Z: in zone
Z: maps to
//allfiles in the same zone
WIN, then the mapped path will be based at
How Mapping Works
There is one path mapping table for a Houdini session, which is also shared by all PDG graphs. File attributes and File Results store their
original path, and their
mapped path is generated on demand using the PDG Path Map.
Only the first matched rule will be applied for a given zone. For example if there are 2 rules for zone 'WIN' which map a given source path to different destination paths, only the first rule will be applied. There is no check for the actual existence of the file path.
The mapping table is stored in a
PDG_PATHMAP global variable, which is saved in the HIP file. When PDG jobs are executed, this
PDG_PATHMAP is set in their environment so that it can be used to figure out the local version of a given file path. This happens automatically when using the work item API.
PDG automatically determines the local
Zone which matches the platform to
You can override this with parameters on the scheduler nodes, and they apply to all jobs scheduled by the schedulers.
You can globally override this with the environment variable
Custom zones are useful for more complex farm set-ups. For example, like for a hybrid cloud involving
*Zone will apply to all platforms.
Porting from 18.0
Scheduler nodes from a previous version of Houdini are automatically set to the
None mode of path mapping, which disables the path mapping logic and instead relies on paths being
delocalized with the tokens
__PDG_TEMP__, and so on.
If you do not require path mappings, you can safely set this to
If you do require path mappings, you should add them with this table and then set it to
You can access the Path Map Python API through pdg.File.
PDG Path Map
In the Tasks menu, select PDG Path Map to open the PDG Path Map Window.
adds a new row to the table.
removes the selected row from the table.
reloads the table from the global var
The Path Map Table
The name of the path mapping zone that this mapping maps to.
The path that is replaced.
The path that the Source Path is replaced with, when running in the given Zone.
loads the table from the contents of the clipboard.
copies the table contents to the clipboard as JSON.