|On this page|
This node is a subnet that contains a ROP Fetch TOP node and a ROP Network with a Geometry ROP node. The parameters on the Geometry node are promoted onto this node’s interface. Relevant parameters from the ROP Fetch are also available, including controls for using this node to cook work items for a distributed sim.
The subnet also contains a SOP network as a dive target, which can be used with the ROP Geometry. By default the built-in SOP network is disabled, and will only be used when the Use External SOP toggle is turned off.
If the SOP network you are cooking with this node is threaded (such as most simulations) you will be using most of the computer’s CPU resources. For this reason you should ensure that only one such work item is cooking at a time.
For the Local Scheduler, this means adding the Single job parm on the ROP Geometry Output node and toggling it ON.
For the HQueue Scheduler, this might mean adding and setting the CPUs per Job job parm.
$HH/help/files/pdg_examples/top_distributedsimexample shows how you can use this node to cook a distributed simulation.
$HH/help/files/pdg_examples/top_ropexample shows how you can use this node to cache source and simulation geometry to disk.
ROP Geometry ¶
Determines how the TOP node creates and executes work items.
When using the Single Frame option, the node creates one work item for each upstream frame. When using the Frame Range option, the node creates one work item per frame in the range for each upstream work item. When using the ROP Node Configuration option, PDG cooks the ROP without passing any frame range options and uses whatever configuration is set on the target ROP. When using the Automatic option, the node automatically configures the node based on whether or not it has any inputs.
The node creates a single work item per upstream item and sets the new work item’s frame to match the upstream item’s frame. If there are no input nodes, then the node creates a single work item set to frame 1. You can override the single frame value with the Override Frame parameter.
For each upstream work item, the node creates the full frame range of work items. If there are no upstream items, the node creates one set of items for the specified frame range.
If the node has inputs, it generates one frame of work for each input. If the node does not have any inputs, it generates work items for the node’s full frame range.
ROP Node Configuration
For each upstream work item, the node creates a single work item that cooks the ROP Path and PDG does not pass any frame range settings to the ROP node. The number of frames to cook is determined by the parameters on the ROP itself.
When this parameter is enabled, it overrides the frame used with the Single Frame Evaluation mode.
The frame start, end and step size to use when Frame Generation is set to Frame Range.
Expand Input Files Across Frame Range
Spreads the input file list across the frame range.
For example, if the upstream work item has 100 output files and the frame range on this node is set to 1 to 50, then each work item in this node will have 2 input files. The first work item will have file 1 and file 2, the second work item will have file 3 and file 4, and so on.
This parameter is only available when Evaluate Using is set to Frame Range.
ROP Fetch ¶
Determines when this node will generate work items. You should generally leave this set to “Automatic” unless you know the node requires a specific generation mode, or that the work items need to be generated dynamically.
All Upstream Items are Generated
This node will generate work items once all of the input nodes have generated their work items.
All Upstream Items are Cooked
This node will generate work items once all of the input nodes have cooked their work items.
Each Upstream Item is Cooked
This node will generate work items each time a work item in an input node is cooked.
The generation mode is selected based on the generation mode of the input nodes. If any of the input nodes are generating work items when their inputs cook, this node will be set to Each Upstream Item is Cooked. Otherwise, it will be set to All Upstream Items are Generated.
Determines how the processor node handles work items that report expected file results.
If the expected result file exists on disk, the work item is marked as cooked without being scheduled. If the file does not exist on disk, the work item is scheduled as normal. If upstream work item dependencies write out new files during a cook, the cache files on work items in this node will also be marked as out-of-date.
Automatic (Ignore Upstream)
The same as Automatic, except upstream file writes do not invalidate cache files on work items in this node and this node will only check output files for its own work items.
If the expected result file exists on disk, the work item is marked as cooked without being scheduled. Otherwise the work item is marked as failed.
Work items are always scheduled and the expected result file is ignored even if it exists on disk.
Determines how work items in the node should cook, e.g. if they should run in process, out of process, or using services.
When Cook Type is set to the Service, this parameter is used to specify the name of the service. For more information on using services, see the PDG Service Manager documentation.
Reload Parm Path
When on, specifies the path to a parameter that should be be pressed before each frame cooks. This can be useful when cooking a ROP that references nodes that need to manually reload external resources with a Reload button.
Reset $HIP On Cook
When on, sets the
$HIP variable in the job to the value of the
$HIP on the submitting machine. This can be used to keep
$HIP-based file references in the scene file valid when it is copied to the scheduler working directory at the start of the PDG cook. The original
.hip file can then be safely modified while the cook proceeds.
Ignore Scene Load Errors
When this parameter is enabled, work items ignore any errors that occur when loading the .hip file. This can be useful when the scene has a load error that does not interfere with the nodes involved in cooking the ROP Path.
Frames and Batching ¶
All Frames in One Batch
When on, work items from the same frame range are grouped into a batch that is scheduled as a single job. This is used for simulations where each frame depends on the previous frame, and it is advantageous to keep everything in memory.
Cook Batch When
Determines when batches of frames are scheduled.
By default, the batch is scheduled once the dependencies for all frames are cooked. However, it is possible to schedule the batch as soon as its first frame can run.
All Frames are Ready
The batch is scheduled only when all dependencies on all frames in the batch are satisfied.
First Frame is Ready
The batch is scheduled as soon as its first frame is ready.
This is possible because the ROP wrapper script used by PDG ensures that subsequent frames correctly wait for their dependencies. This is done by communicating back to PDG as the job is running to check the status of the dependencies before each frame. This incurs slightly more network overhead, and requires ongoing communication between the job and PDG.
This option is not available when cooking a Composite ROP node since COP file nodes must be able to load their entire input file sequence on the first frame.
Fixed Number of Frames are Ready
The batch is scheduled once a fixed number of frames have cook dependencies, starting from the first frame in the range. The number of frames is determined by the Number of Frames parameter.
For example, if a batch is cooking from frame 1 to frame 24 and the Number of Frames parameter is set to 6, the batch will be scheduler after the dependencies for batch frames 1 to 6 have cooked.
Percentage of Frames are Ready
The batch is scheduled once a percentage of its frames dependencies have been cooked. The percentage of frames is determined by the Percentage of Frames parameter.
Automatically Set Missing Frames
When on, the node will attempt to assign a
range value to work items that are missing those values. It determines the range based on the number of input work items, and sets the frame based on the work item’s position in the input list. If only some of the input work items are missing a frame, the behavior may be inconsistent.
Resume Partially Cached Batches
Determines whether or not batches produced by this node should resume cooking from partially cached output files. You should only enable this option for simulations if the DOP network itself is already configured to write sim cache files.
When on, the node treats the target ROP as part of a distributed simulation. This enables the parameters for configuring a distributed sim, and disables the frame generation parameters.
The control DOP for the distributed sim.
Custom Tracker Port
When this parameter is enabled, the specified port is used for the sim tracker that transmits slice information between jobs. Otherwise, if this parameter is disabled, PDG will automatically use an available port.
Custom Web Port
When this parameter is enabled, the specified port is used to host the web page for monitor distributed sim status. Otherwise, if this parameter is disabled, PDG will automatically use an available port.
Verbose Tracking Logger
When on, enables verbose log messages on the distributed sim tracker.
The type of slicing used for the distributed sim.
Use the particle slicing method for the distributed sim.
Use the volume slicing method for the distributed sim.
Specifies the number of slices for the distributed sim.
This parameter setting is only available when Slice Type is set to Particles.
Determines the x, y, and z volume divisions for the distributed sim.
This parameter setting is only available when Slice Type is set to Volumes.
Debugging and Performance ¶
Enable Performance Monitor Logging
When on, the Performance Monitor is enabled when cooking the ROP. The Performance Monitor prints performance information to the work item log.
When on, this parameter determines where the performance monitor output is saved to on disk. When off, the output is written to the work item’s output log instead.
If the specified file ends with a
.csv extension, then it is exported as the CSV format. If the specified file is any other file type, then the file is saved using the Houdini performance monitor output syntax. A file in that format can be imported back into the Performance Monitor pane tab for viewing.
One file is written out for each process that performs a ROP cook. For example, if batching is enabled, then a single
.hperf file is written out for each batch process. If every frame is cooked in a separate process, then one performance file is written out for each frame.
This parameter is only available when Enable Performance Monitor Logging is on.
Save Debug .hip File
When on, the state of the
.hip file containing the ROP node is saved to the specified path after the cook has completed. This includes all wedge parameter and environment changes, or scene state modified by cooking the network. If the cook fails due to an error in the ROP evaluation, then the
.hip file is still saved.
Manual Render ¶
TOP Scheduler Override
This parameter overrides the TOP scheduler for this node.
When enabled, this parameter can be used to specify an expression that determines which work items from the node should be scheduled. If the expression returns zero for a given work item, that work item will immediately be marked as cooked instead of being queued with a scheduler. If the expression returns a non-zero value, the work item is scheduled normally.
Work Item Label
Determines how the node should label its work items. This parameter allows you to assign non-unique label strings to your work items which are then used to identify the work items in the attribute panel, task bar, and scheduler job names.
Use Default Label
The work items in this node will use the default label from the TOP network, or have no label if the default is unset.
Inherit From Upstream Item
The work items inherit their labels from their parent work items.
The work item label is set to the Label Expression custom expression which is evaluated for each item.
Node Defines Label
The work item label is defined in the node’s internal logic.
When on, this parameter specifies a custom label for work items created by this node. The parameter can be an expression that includes references to work item attributes or built-in properties. For example,
$OS: @pdg_frame will set the label of each work item based on its frame value.
Work Item Priority
This parameter determines how the current scheduler prioritizes the work items in this node.
Inherit From Upstream Item
The work items inherit their priority from their parent items. If a work item has no parent, its priority is set to 0.
The work item priority is set to the value of Priority Expression.
Node Defines Priority
The work item priority is set based on the node’s own internal priority calculations.
This option is only available on the Python Processor TOP, ROP Fetch TOP, and ROP Output TOP nodes. These nodes define their own prioritization schemes that are implemented in their node logic.
This parameter specifies an expression for work item priority. The expression is evaluated for each work item in the node.
This parameter is only available when Work Item Priority is set to Custom Expression.
ROPGeometryOutput Example for ROP Geometry Output TOP node
This example demonstrates how to use the ROP Geometry Output TOP node to cook a SOP network.
VariableFrameRange Example for ROP Geometry Output TOP node
This example demonstrates how to set a variable frame range using expressions on a ROP Geometry TOP node.