Increase performance with the Evaluation Manager

The Evaluation Manager (EM) determines how to evaluate scenes, dividing the work among the available CPU and GPU computation resources to speed up performance. It works in the background, using the existing dirty propagation mechanism to convert the Directed Graph (DG) representation of your scene to a Forward Evaluation graph (FG). Once the FG is built, dirty propagation is disabled and an Evaluation schedule (ES) is built. The ES evaluates scene nodes in the correct order; this way, your scene produces the same result as with the “classic” Directed Graph-based evaluation.

You can watch a short movie that gives a high-level explanation of what the Evaluation Manager does here and for a more in-depth, technical explanation, read the Parallel Maya Whitepaper.

The FG determines dependencies between scene elements; if two nodes in the scene are independent, they are good candidates for Parallel evaluation on different processors.

Note: Sometimes nodes in a scene cannot be evaluated in Parallel mode, despite being independent, due to the node’s implementation. In these cases, nodes are classified according to their different “thread-safety” levels.
Note: Animation using FBIK reverts to Serial Evaluation as FBIK creates missing dependencies in the Evaluation Manager. As FBIK has been deprecated, use HIK for whole-body inverse kinematics and retargeting.

Evaluation Modes

Choose the appropriate evaluation mode from the (Editors > Settings/Preferences > Preferences > Animation > Evaluation section:

Differences between Evaluation Modes

Resource-heavy tasks take roughly the same amount of time in DG, Serial, and Parallel modes. For example, if you use a deformer that takes 0.5 seconds to deform a mesh, evaluating this deformer in Parallel does not add any change to performance.

If all EM/DG modes show the same bottleneck, addressing this problem will increase your performance gains. Use the Profiler to demonstrate in a graph the amount of time that each process consumes.

However, if you encounter problems that appear only in Parallel, this can indicate that there are thread contention problems with your scene, where multiple threads are trying to work at once while fighting for control of a shared resource.

Limitations

Some Maya features, such as Cached Playback, produce incorrect results when using the Evaluation Manager. This includes cases such as when Viewport 2.0 motion blur is enabled, or when the scene contains certain classic dynamics (for example, particles, cloth, rigid bodies).
Tip: You can run a script that returns a list of which dynamics nodes are causing problems with the Evaluation Manager. See Identify dynamics nodes that inhibit performance.

Performance issues can occur with Python Commands when executing large amounts of commands. If this occurs, define MAYA_RETAIN_PYTHON_GIL in your environment. (MAYA_RELEASE_PYTHON_GIL is deprecated. It is true by default and can be overwritten by MAYA_RETAIN_PYTHON_GIL.)

Also, Python performance issues can occur when evaluating other threads with custom Python nodes.

Refer to the release notes for a complete list of known limitations.