Install HQueue server
Use the Houdini installer on a Linux machine to install the HQueue server. The installer will direct you to the HQueue server’s online help, which will explain how to set up client machines.
Note
The HQueue server installer requires Python 2.5 or greater and MySql to be installed on the server machine.
The file hqserver.ini in the HQueue installation directory contains several useful configuration options, such as the port the HQueue HTTP server runs on.
Save the .hip file for distribution
The client machines on the HQueue network need to be able to load the Houdini file containing your simulation. Therefore, you need to save the .hip file and any external files it depends on to a network-accessible location, such as an NFS or Samba share.
Because different platforms (Windows, Linux, Mac OS X) handle paths and network shares differently, HQueue provides automatic path translation to allow clients on heterogeneous networks to all load the .hip file. This requires that you save the file to a specifically named network share, and have the same network share available at the required locations on all clients, so HQueue can substitute different path prefixes.
The default network share names are
H:on Windows,/mnt/hqon Linux,/Volumes/hqon Mac OS X.You can configure different prefixes for different platforms in the HQueue settings file (for example, if you are already using
H:on your Windows clients). Go to the HQueue server installation directory and edit the settings inhqserver.ini.
Tip
In the
.hipfile, make all path references to external files relative to$HIP.Use forward slashes in paths.
Set up a pyro simulation
See the help on the Pyro FX shelf tools for how to use the tools on the Pyro FX shelf to set up a pyro effects network and associated objects.
Generate low-res simulation files
Go inside the
lowrespyroobject created by the Pyro shelf tool.Select the
pyrofieldsDOP I/O node.In the parameter editor, you can edit the Geometry file to control the location and naming pattern for the low-res simulation files.
The default (
$HIP/${OS}_$F.bgeo.gz) is fine, but you may want to keep the simulation files inside their own directory (e.g.$HIP/sim/${OS}_$F.bgeo.gz) or change the naming convention. See using expressions in filenames for more information.The path should be relative to
$HIP.Click the Export to file tab. Set the frame range you want to generate simulation files for.
Click Render.
Set up the .hip file for up-res
Go to the simulation network and select the
switch_simulationmodenode.In the parameter editor, change Simulate to “Up res”.
Save the
.hipfile.
Distribute the generation of up-res geometry
Click Distribute on the Volume Fluids tab.
This modifies the network, adding nodes to slice the up-res simulation and communicate with other clients across the network.
In the effect’s DOP network, select the
uprespyronode, then press Enter.This creates a few nodes in various networks for distributing the up-res:
A
distributedsimHQueue Simulation render node in/outto render the simulation out to HQueue.This render node sends the distribution job to the HQueue server.
A
distribute_uprespyroobject in/objto load the simulation files created by the HQueue clients back into Houdini.A
DISTRIBUTE_uprespyro_CONTROLSNull node in the DOP network.This node is mostly a placeholder for values. The render node explicitly sets values on the “control” Null DOP such as the tracker address/port and slice divisions, and then multiple distribution-aware DOPs in the network reference the value on the control Null.
If you want to change the default path pattern for saved up-res geometry files (
$HIP/geo/dist_${SLICE}_$F.bgeo.gz), go to the Scene level (/obj) and double-click thedistribute_uprespyroobject to go inside. Select theloadslicesFile node and change the File parameter. See using expressions in filenames for more information.The path should be relative to
$HIP.In the main menu, choose Render > Edit render node > distributedsim. In the parameter editor
Set the frame range you want to up-res.
Set the slice divisions. Each slice requires an individual machine on the HQueue client network, so only set as many slices as you have machines. For example, setting the divisions to 2 x 2 x 2 would require at least 8 machines on the HQueue network.
Set the HQ Server to the hostname and port of the HQueue server, for example
render.example.com:5000.
In the parameter editor, click Render to send the job to HQueue.
The render node sends its information to the HQueue server. The HQueue server sends commands to its client machines to load the
.hipfile and simulate and save a slice of the up-res simulation per-frame. The individual client machines save their generated geometry cache files to the shared network directory.
Turn off the live simulation
Once the HQueue network has generated the up-res geometry, you should stop the original simulation network from cooking, since you now have the end-result cached.
Do one of the following:
Turn off simulation in Houdini: right click (or pressing and holding on) the
simulation menu in the bottom right corner of the main window and turn off Enable simulation.
Start a fresh new
.hipfile that simply loads the generated up-res geometry files using a File surface node.Turn off the visibility of any scene-level objects that require the simulation to cook.
How to view the simulation without distribution
The Distribute tool on the on the Volume Fluids tab modifies the network to ready it for distribution. If you try to play back the simulation after these modifications, the network will only calculate a slice of the whole simulation, and several nodes will generate network traffic trying to talk to HQueue peers.
If you want to check the simulation on a single machine, you can use parameters on the “control” Null DOP created by the Distribute tool to temporarily switch the network back to non-distributed operation.
| To... | Do this |
|---|---|
| View a slice without distributing the simulation |
|
| View the simulation without slicing or distributing |
|