- Switch Evaluation modes in the Preferences window (Editors > Settings/Preferences > Preferences > Animation > Evaluation).
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 video about what the Evaluation Manager does here. For a more in-depth, technical explanation of Evaluation Manager, 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.
Evaluation Modes
- DG
- Uses dependency graph-based evaluation mode for your scene. (See also Dependency graph.)
- Serial
- Uses the Evaluation Manager but limits evaluation to a single core (serial evaluation). Use
Serial to troubleshoot your scene as it prioritizes scene fidelity over performance so you can locate evaluation errors.
Note: Sometimes scenes run more slowly in Serial evaluation mode than in DG mode. This is because Serial evaluates more nodes than DG mode. Because of this detailed evaluation, if the scene looks incorrect in Serial mode, it is unlikely to work properly in Parallel mode.
Sometimes improper evaluation in Serial mode is caused by custom plug-ins.
- Parallel
- Parallelizes evaluation and uses all available cores to evaluate your scene. If this mode causes problems with your scene, disable it and return to the previous standard: DG evaluation mode. This mode is active by default.
- GPU Override
- Works with the Evaluation Manager to accelerate deformations in either
Serial or
Parallel Evaluation mode. If your scene has standard
Maya Creative deformers and the mesh geometry is dense, this can improve performance. Results vary based on the deformers and density of meshes in your scenes.
Note: GPU override works only with Viewport 2.0 and does not work with Quadro 4000 graphics cards on OSX.
- You can find a technical explanation of GPU Override at Using Parallel Maya.
- Include Controllers in Evaluation Graph
- Activates/disables pre-population with the controller mechanism in the Evaluation Manager when building.
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
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.