CPU Settings Rollout

tyFlow has controls which allow you to tune CPU usage.

Multi-threading (this flow)

These settings are specific to the selected flow object.

  • Auto: allows tyFlow to determine the maximum number of threads to use to evaluate the simulation (defaults to max. available)

  • Threads: provides manual control over the maximum number of CPU threads the flow can use to evaluate the simulation.

Setting thread count to a particular value doesn’t mean that number of threads will be used for every operation, only that tyFlow may not exceed that particular number of threads for a given operation. Some operations benefit from more threads and some with less, and tyFlow makes internal determinations regarding the actual number of threads to use on a per-algorithm basis (with the only constraint being the maximum value provided by the user here).

Multi-threading (all flows)

These settings are universal to all flows and are sticky settings (their values are stored in 3dsMax.ini, instead of the scene file)

  • Pin threads: controls whether threads launched by tyFlow’s internal thread pool will be pinned to a particular processor.

Certain CPU architectures, when utilized by Windows’ thread scheduler, suffer performance issues in tyFlow when threads are not pinned. Historically, this has been the case with AMD Ryzen Threadripper CPUs. If you are using a Threadripper, enabling “pin threads” is recommended. This keeps each tyFlow thread locked to a CPU core (Threadrippers seem to suffer from performance issues in tyFlow when threads are mobile - enabling “pin threads” restores expected performance).

  • Use threading hints: when enabled, the number of threads used for a given threading task will be based on an internal hinting system. When disabled, all threads will be used for all tasks.

The use of threading hints is a legacy system implemented in tyFlow’s original thread pool - it was used to estimate whether or not a task would run faster on fewer cores, depending on the simplicity of the task. More recent improvements in CPU/RAM efficiency, as well as the ability for tyFlow to pin threads (see above), have made the hinting system less useful - users may even see a measurable performance improvement with it disabled. The option to re-enable it has been added in case a user is on a machine where it still provides a performance benefit. Users will have to individually test their own systems to see if it provides a performance improvement, but in many cases it’s a setting that can be kept disabled.

  • High thread priority: when enabled, threads spawned by tyFlow’s thread pool will have a high priority (Windows will prioritize them over other threads running).

  • Reserved processors: controls how many processors are reserved for other threads running on the system. Increasing this value is equivalent to decreasing the max thread value of a flow, with the difference being that this setting is a sticky, universal setting and doesn’t need to be set on a per-flow basis.