Thread Settings for Maximum Parallelism (TSM)
- Updated2025-01-22
- 3 minute(s) read
Thread Settings for Maximum Parallelism (TSM)
Depending on the number of sites a test program tests, the number of pins in the pin map, the number of independent instrument resources on the tester, and the number of logical processors on the tester, you might need to adjust several thread-related settings to achieve greater execution parallelism and better performance. Because using the suggested setting values does not guarantee optimal performance, measure test program performance each time you change these settings to determine how the change affects performance.
LabVIEW Parallel For
Loops
LabVIEW creates multiple instances of the contents of parallel For Loops and executes them in parallel. The number of instances that execute in parallel is determined by the value wired to the P terminal and the value of the Number of generated parallel loop instances option in the For Loop Iteration Parallelism dialog box in LabVIEW. By default, LabVIEW uses the minimum of the number of logical processors on the tester and the number of logical processors on the computer used to save the VI. To ensure maximum parallelism, use the following parallel For Loop settings:
-
Number of generated parallel loop
instances—The best value for this
setting depends on the purpose of the loop. Do not use an
arbitrarily large number for this setting because it can add
to execution time and can cause high memory usage and long
delays when unloading the test program.
- For the For Loops that iterate over instrument sessions, set the Number of generated parallel loop instances option to the maximum number of instrument sessions the loop can use. The maximum number of instrument sessions used depends on the type of instrument, the number of pins, and the number of sites and settings on the Options tab of the Semiconductor Multi Test or Semiconductor Action step. For channel-based sessions, such as NI-DCPower sessions, use the following equation to determine the maximum number of sessions the loop can use: (number of pins used by loop)*(maximum number of sites in a single block in the Multisite Execution Diagram on Options tab) For NI-Digital Pattern instruments and other instrument-based sessions, use the number of instruments of that type in the pin map.
- For the For Loops that process data, you often can achieve the best performance by disabling loop parallelism. If the data processing is relatively slow and CPU intensive (such as the computation of large FFTs), first set the Number of generated parallel loop instances option to the number of logical processors on the target tester. If the loop has more iterations than the number of logical processors, try larger values for the Number of generated parallel loop instances option and measure performance to determine the best value to use.
- P terminal—Wire the P terminal to the size of the array that the For Loop uses for indexing. Leaving the P terminal unconnected causes LabVIEW to use the lesser of the Number of generated parallel loop instances option and the number of logical processors on the tester.
LabVIEW Adapter
Settings
For VIs that TestStand steps call using the LabVIEW Run-Time Engine, the LabVIEW Adapter allocates threads to execute the VIs that use the same as caller execution system. Change the Number of Threads option on the LabVIEW Adapter Configuration dialog box to the maximum number of parallel loop instances that all VIs in the test program require.
Version | Maximum Value |
---|---|
TestStand 2016 and earlier | 12 |
TestStand 2017 | 36 |
TestStand 2017 SP1 and later | 96 |