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.

Un-pinned threads can be moved from processor-to-processor by Windows’ thread scheduler, which can cause drastic performance loss in some situations. This setting can usually be turned on, unless your machine is configured in a way that would benefit from full thread mobility.

  • 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.