HQueue, or Houdini Queue, is a distributed job scheduling system.
HQueue, or Houdini Queue, is a distributed job scheduling system. It consists of an HQueue server and a farm of processing nodes, or clients. The server accepts job submissions from users and assigns them to available clients.
The HQueue Render output driver submits render jobs to HQueue for distribution on the farm. The actual rendering is done by the node specified in the Output Driver parameter. This is typically aMantra ROP, but can also be a Composite ROP or other output driver.
You can also use the HQueue Render ROP to securely upload your project and render on the Amazon EC2 Cloud. With the Cloud, you can distribute your jobs across a virtually unlimited number of machines. For more information and to sign up for Amazon’s and SESI’s cloud services, visit http://www.sidefx.com/cloud/faq.
Parameters
Render | Submit a render job to the HQueue system. If the submission is successful, then a dialog pops-up with the render job’s id. The id can be used to track the job progress on HQueue’s web-based user interface. If you are rendering to the Amazon EC2 Cloud, then a file dependency dialog is opened giving you an opportunity to scan through your project files and verify which ones are required for rendering. When you are finished, Houdini contacts the EC2 Cloud and starts machines on your behalf. Once the machines are available, Houdini securely uploads your project files, runs HQueue on the cloud to distribute the renders and then downloads your output files as they become available. Note On your first submission, Houdini makes a request to start machines on the Cloud. This process can take up to 10 minutes, but typically takes about 1-2 minutes. Subsequent submissions re-use the running machines so that the startup time is avoided. Note On your first submission, Houdini uploads all the project files required by your render job. On subsequent submissions, Houdini only uploads the project files that have been modified since the last submission. |
General
Job Name | The name of the job. Set this to <default> or set blank if you want the default job name to be used. |
Output Driver | The render node used to generate the output files. For most cases, this would be a path to aMantra ROP. Note This parameter does not apply if both the Local Farm and Use Existing IFDsoptions are chosen. |
Local Farm
Choose this option if you want to submit render jobs to an HQueue farm on your local network.
HQueue Server | The machine name and listen port of the HQueue server. | ||||||||
Target HFS | The path to the Houdini distribution that will execute the render on the HQueue farm. The distribution must be installed in a location that is accessible by every machine on the farm. You can use the $HQROOT and$HQCLIENTARCH variables to help specify the folder path (see HQueue Variables). | ||||||||
Job Priority | The job’s priority. Jobs with higher priorities are scheduled and processed before jobs with lower priorities. 0 is the lowest priority. | ||||||||
| |||||||||
Target HIP | When Render Target HIP File is chosen, set this parameter’s value to the location of the .hip file to be loaded and rendered on the farm. The .hip file must be saved somewhere on the shared drive, or any other location that is accessible by every machine on the farm. You can use the $HQROOT variable to help specify the .hip file path (see HQueue Variables). | ||||||||
Project Path | When Copy Project Files to Shared Folder and Render is chosen, set this parameter’s value to the location on the shared folder where you want to copy your .hip file and its dependencies to. The location must be accessible by all machines on the farm. You can use the $HQROOTvariable to help specify the .hip file path (see HQueue Variables). | ||||||||
IFD Path | When Use Existing IFDs is chosen, set this paramter’s value to the path of the IFDs to be used for rendering. The location must be accessible to all locations on the farm. | ||||||||
Start/End/Inc | When Use Existing IFDs is chosen, set these fields to specify the start frame, the end frame, and the frame increment value for the render. The frame increment may not be zero and the start and end frames chosen must correspond to existing files when the IFD Path is expanded with frame numbers. | ||||||||
Automatically Save HIP File | When checked, Houdini automatically saves the current .hip file before submitting a job to HQueue. This guarantees that the farm renders with the latest changes made to your scene. This parameter does not apply when Render Target HIP File or Use Existing IFDs is chosen. |
Cloud
Choose this option if you want to submit render jobs to HQueue on the Amazon EC2 Cloud.
Check Progress | Click this button to check the progress of an active render job on the Cloud. |
Check Amazon | Click this button to open the Amazon AWS Management Console. The console allows you to monitor the running Cloud machines (or instances) that are rendering your jobs. The console is the ideal way for checking if you have any running instances and terminating any that you believe that should be shutdown. |
Help | Click this button to open the online HQueue on the Amazon Cloud FAQ. |
Machine Type | Select the type of machines that you want to render your job. Here is a list of the different types: 1 EC2 Compute Units, 1.7GB RAM, 160GB HDD 5 EC2 Compute Units, 1.7GB RAM, 350GB HDD 4 EC2 Compute Units, 7.5GB RAM, 2 x 420GB HDD 8 EC2 Compute Units, 15.0GB RAM, 4 x 420GB HDD 20 EC2 Compute Units, 7.0GB RAM, 4 x 420GB HDD 13 EC2 Compute Units, 34.2GB RAM, 850GB HDD 26 EC2 Compute Units, 68.4GB RAM, 2 x 840GB HDD 88 EC2 Compute Units, 244GB RAM, 2 x 120GB SSD All machine types are 64-bit. The 20 EC2 Compute Units, 7.0GB RAM, 4 x 420GB HDD machine type is recommended for most jobs since it delivers the most power per dollar. If you wish to simply test submitting jobs to Houdini on the Cloud, then it is recommended that you choose the 1 EC2 Compute Units, 1.7GB RAM, 160GB HDD because of its low cost. |
Num. Machines | The number of machines to start up and render your jobs. By default, Amazon limits you to a maximum of 20 machines (or instances) per EC2 region. To increase the limit, you can make a request to Amazon here:http://aws.amazon.com/contact-us/ec2-request/. |
Cloud Region | Amazon EC2 provides machines in different regions in the world. Depending on your location, certain regions will supply faster data transfer rates reducing upload and download times. You can choose a particular region to submit your render jobs to. In most cases, selecting Use Detected is recommended. |
Email Options
These options are not available if Cloud rendering is chosen.
Send Status Emails | Enable this parameter if you want status emails for the specified events to be sent out. |
Note
The following parameters only apply when the Send Status Emails parameter is turned on.
Email Address | The list of emails that will be sent status updates. Use commas to separate the entries. |
On Start | Enable this parameter to have emails sent when the job starts being processed by a client. |
On Success | Enable this parameter to have emails sent when the job is successfully completed. |
On Failure | Enable this parameter to have emails sent when the job has failed, been canceled, or abandoned. |
On Pause | Enable this parameter to have emails sent when the job is paused. |
On Resume | Enable this parameter to have emails sent when the job is resumed. |
On Reschedule | Enable this parameter to have emails sent when a job is rescheduled. |
On Priority Change | Enable this parameter to have emails sent when a job’s priority is changed. |
Mantra Options
Generate IFDs | When checked, a job is submitted to HQueue which writes IFD files to the specified path. As IFDs are generated, additional jobs are automatically submitted to HQueue which perform the rendering using the IFDs as input. When unchecked, IFD generation is skipped and hython, instead of Mantra, is used to cook and render each frame. Having this parameter turned on guarantees that at most 1 HBatch (or greater) license token is used on the farm to process your job. This parameter does not apply when both the Local Farm and Use Existing IFDsoptions are chosen or when the Output Driver parameter points to a ROP other than the Mantra ROP. | ||||||
Assign IFD Job To | Set this parameter if you want HQueue to assign the IFD generation job to a specific client or a member of a specific client group. This parameter only applies when theGenerate IFDs parameter is checked on.
| ||||||
Clients | The list of client machines that HQueue can assign the IFD generation job to. Use commas to separate the machine names. This parameter only applies if Listed Clients is chosen in the Assign Toparameter. | ||||||
Select Clients | Click to pop-up a dialog with a list of client machines registered on the HQueue farm. Accepting the selection in the dialog automatically populates the Clientsparameter with the selected clients. | ||||||
Client Groups | The list of client groups that HQueue can assign the IFD generation job to. Use commas to separate the group names. Specifically, HQueue assigns the IFD generation job to a machine that is a members of at least one of the groups in the list. This parameter only applies if Clients from Listed Groups is chosen in the Assign Toparameter. | ||||||
Select Client Groups | Click to pop-up a dialog with a list of client groups registered on the HQueue farm. Accepting the selection in the dialog automatically populates the Client Groupsparameter with the selected groups. | ||||||
Delete IFDs On Frame Completion | If this box is checked, the IFD for a frame will be deleted when the farm finishes rendering that frame. This parameter only applies when Generate IFDs is enabled and the Local Farm is chosen. It does not apply when the Use Existing IFDs option is chosen. | ||||||
Min. Clients per Frame | The minimum number of client machines that should concurrently render a single frame. Multi-client rendering is achieved on HQueue using Mantra’s -H option (please see rendering on the network for more information). This parameter only applies if the Output Driver parameter is pointing to a Mantra ROP. | ||||||
Max. Clients per Frame | The maximum number of client machines that should concurrently render a single frame. This parameter only applies if theOutput Driver parameter is pointing to aMantra ROP. | ||||||
Render Single Tile | Check this box if you only want the single tile specified by the Mantra ROP’s Tile Index parameter to be rendered. If tiling is enabled and this is box is not checked, then the tiles are rendered as separate jobs before being stitched together into the final image. This parameter only applies if Local Farm is selected and neither Use Existing IFDs or Generate IFDs are enabled. Note This has no effect unless the Mantra output driver has tiling enabled. |
Advanced
Assign To | Set this parameter if you want HQueue to assign the render job to a specific list of clients or client groups. This parameter only applies when rendering to a local HQueue farm.
| ||||||
Clients | The list of client machines that HQueue can assign the render jobs to. Use commas to separate the machine names. This parameter only applies if Listed Clients is chosen in the Assign To parameter. | ||||||
Select Clients | Click to pop-up a dialog with a list of client machines registered on the HQueue farm. Accepting the selection in the dialog automatically populates the Clients parameter with the selected clients. | ||||||
Client Groups | The list of client groups that HQueue can assign the render jobs to. Use commas to separate the group names. Specifically, HQueue assigns render jobs to only the machines that are members of at least one of the groups in the list. This parameter only applies if Clients from Listed Groups is chosen in the Assign To parameter. | ||||||
Select Client Groups | Click to pop-up a dialog with a list of client groups registered on the HQueue farm. Accepting the selection in the dialog automatically populates the Client Groups parameter with the selected groups. | ||||||
Batch All Frames in One Job | Check this parameter if you want to render all of the frames in a single HQueue job. This is especially useful when rendering with a Dynamics ROP or a Geometry ROP where a cooked frame depends on the cooked results of the previous frames. RBD, Cloth and Wire simulations, which cannot be divided into slices and distributed across multiple machines, work best with this option turned on. | ||||||
Frames per Job | The number of frames that are rendered in a single HQueue job. For each job, HQueue starts Houdini, loads the .hip file, renders the requested number of frames and then quits. Having more frames per job reduces the amount of overhead spent starting and quitting Houdini. However, having too many frames per job means less jobs can be distributed across the farm which could potentially lengthen the overall rendering time depending on the number of available client machines. The ideal value for this parameter would result in having at most one render job assigned to a machine on the farm. You can use the following formula as a starting point: frames_per_job = ceil(number_of_frames / number_of_machines)
In most cases, a value of 1 is usually sufficient. This parameter only applies if Batch All Frames in One Job is unchecked. | ||||||
Frame Order |
| ||||||
Set Number of CPUs per Job | Check this parameter if you want to set the maximum number of CPUs used for each render job. | ||||||
CPUs per Job | The maximum number of CPUs that will be used by a render job. If the number exceeds a client machine’s number of CPUs, then the client machine will not be assigned to any render jobs. | ||||||
Environment | A list of variable names and values that should be defined on the client machine when running the job. The variables appear as shell environment variables. | ||||||
Create Directories | A list of output directories that should be created on the farm before any files are rendered out. For example, if your render generates a shadow map and an image, then you can add $HIP/shadowmap and $HIP/pics to this list. Note that this parameter does nothing if the output directories already exist. |
HQueue Variables
HQueue defines a set of variables which appear in the environment of a running job. You can use these variables to refer to common file paths, machine settings and server configuration values.
HQROOT | Evaluates to the root directory of the HQueue shared file system. The default HQueue installation sets this variable to /mnt/hq on Linux systems, H:/ on Windows systems, and/Volumes/HQShared on Mac OSX systems. Note that the shared file system can be configured to reside in a different location so check with your HQueue administrator for details. |
HQCLIENTARCH | Evaluates to the architecture and operating system of the client machine assigned to execute the render job. For example, if the HQueue server assigned a job to a Linux, 64-bit machine on the farm, then $HQCLIENTARCHis set to ‘linux-x86_64’ in the environment. This variable is useful for when you want to refer to paths that depend on the client machine’s platform. For example,/mnt/hq/houdini_distros/hfs.$HQCLIENTARCHcould refer to the Houdini distribution to use for a render job. Specifically, it tells HQueue to use/mnt/hq/houdini_distros/hfs.linux-i686when running the job on a 32-bit Linux machine, and to use/mnt/hq/houdini_distros/hfs.linux-x86_64when running the job on a 64-bit Linux machine. |