Tractor

More from Pixar

Tractor is Pixar's distributed processing solution for rendering and other network intensive applications. Derived from years of experience in managing the demands of the worlds largest render farms, Tractor is specifically engineered to address the extreme scalability and performance requirements of today's multi-core networks.

Tractor's queuing engine capable of dispatching over 500 tasks per second. Tractor utilizes proven, open web standards and is highly customizable. Systems administrators can easily add Python extension modules to Tractor-Blades and customize the specifics of how various tasks are executed.

Functionally, Tractor consists of three components:

  1. The Tractor-Engine maintains the central job queue and dispatches tasks.
  2. The Tractor-Blade is a Python based execution server running on each remote node.
  3. The Tractor-Dashboard is a customizable web browser user interface providing centralized control of the Tractor-Engine.

The New Release - Tractor 2

Tractor 2 is a major new release that expands upon the successful Tractor render farm job queuing system. Key features include a deepening of the underlying platform architecture to support new wrangling and management tools as well as a forward-looking API and data features that address custom pipeline integration requirements while providing a robust foundation for additional features in development.

What's New?

  • New Tractor Product Layout -- Tractor in now easier to install, maintain, and upgrade.
  • Query Tools -- Introducing "tq" the tractor query command line tool. Based on proven Pixar studio tools, query live Tractor data from your terminal shell, from your Python scripts, or from the Dashboard.
  • Adaptive Farm Allocations -- Dynamically allocate resources between people or projects using flexible limits.
  • Dispatching Tiers -- Organize broad sets of jobs into site-defined priority groups. Create your own!
  • Custom Menu Actions -- Create custom dashboard items to invoke centralized scripts.
  • Job Authoring API -- Now easily create Job, Task, and Command objects linked together according to your dependency requirements, with Python scripts.
  • Simple Engine Discovery -- Setting up Tractor is much simpler, with a new mode that doesn't require manual nameserver (DNS/LDAP) configuration.
  • Blade Auto-Update -- A new tractor-blade patch management system can automatically push out new versions to the entire farm.
  • Pluggable Authentication Module (PAM) support -- A simplified system for password support.
  • Privilege Insulation -- Allows Tractor's normal day-after-day operations to assume the appropriate permissions associated with the specific users.
  • Dynamic Service Key Advertisement -- Advanced usage cases can now take advantage of "Profiles." For example, blades can offer a selection of capabilities depending on previously launched commands.
  • Resource Usage Tracking -- Improved tracking of launched commands with the ability to record CPU, RSS, and VSZ metrics.
  • Command Retry History -- A unique tracking record can be created in the job database for every command launch attempt.
  • Configuration File Loading -- A streamlined override system can help to clarify which files have been modified from their original "factory settings."
  • Task Concurrency Throttle -- Constrain the maximum number of tasks that may run concurrently for any job.
  • Automatic Blade Error Throttle -- Prevent blades from picking up new work if they encounter too many errors within a given time interval.
  • Job Spooling Improvements -- The many upgrades include faster processing, better error checking, and bundling of required subsystems.
  • Full Integration with RenderMan
  • RenderMan Studio includes out-of-box support for Tractor to facilitate job submissions directly from a session of Maya. Submit jobs locally or remotely, and monitor them with Tractor's Dashboard. For more information check out the Tractor workflow with RMS.

Ask us a question

Invalid Input
Invalid Input
Invalid Input
Invalid Input
Invalid Input
Invalid Input