Skip to main content
InSource Solutions

TN IT268 Understanding Core Affinity with InTouch and Terminal Services

Count5.JPGInSource_Logo_Transparent (1).png




This article from InSource shows how the Core Affinity functionality works for your InTouch sessions when used with Remote Desktop Services (Terminal Services).  This will address how to specify the CPU's that you would like to allocate for this.  

  • Author: Glenn Yancey
  • Published: 06/26/2017
  • Applies to: Wonderware InTouch 2014 and newer


Prior to InTouch 2014, InTouch required the download of the Processor Affnity application to designate which CPU will be assign to each Terminal Server/Remote Desktop Server session.   

Current versions (starting with 2014 or 11.0) of Wonderware InTouch RDS(Remote Desktop Services)/TSE (Terminal Services Edition) have Processor Affinity built-in to it.   Here is how it works if you had all CPU's enabled for Core Affinity (Processor Affinity).


Dual Quad-Core Processor (8 CPUs) with 12 InTouch TSE sessions.

Each session is bound to its own CPU in a  round-robin  fashion.  Once you’ve reached all of the CPUs for each session, then the newer are bound the existing CPUs starting with CPU 0. 









Session 01

Session 02

Session 03

Session 04

Session 05

Session 06

Session 07

Session 08

Session 09

Session 10

Session 11

Session 12





Where to set your CPU's 

When running on a Terminal Services client, WindowViewer can use a (core) other than 0 for its execution, if the computer has multiple processors. This is so that InTouch applications that run in a Terminal Server environment can take advantage of the multi-core capabilities of the Terminal Server. When WindowViewer runs on a Terminal Server console, however, this option is not available. An InTouch application always runs on a single processor, regardless of the number of processors available.

When WindowViewer starts, the system checks if the computer has multiple processors and which processors are allowed to run WindowViewer instances. WindowViewer then checks the processors sequentially and starts running on the processor that has the least number of View instances running on it.

If you have administrative privileges to access the Performance tab, you can configure the “pool” of processors from which WindowViewer selects the processor to run on.

You set the core affinity for WindowViewer within Application Manager.

Avoid using Task Manager to manually adjust the core affinity for WindowViewer, as the WindowViewer core selection process does not take into consideration the core affinity settings configured in Task Manager.

To configure the processor “pool”

  1. Start the InTouch Application Manager.CoreAffinity1.png
  2. On the Tools menu, click Node Properties. The Node Properties dialog box appears.
  3. Click the Performance tab.
  4. To allow WindowViewer to use any available processor, click Allow WindowViewer to select from all available processors. 
  5. To restrict the processors that WindowViewer can use, click WindowViewer is limited to use only the processors selected below and then do any of the following:
    1. Make sure the CPU check box is selected for each processor you want WindowViewer to be able to run on.
    2. Click Limit to 0 to only allow WindowViewer to run on processor 0. When you click this button, the CPU 0 check box is automatically selected.
    3. Click Allow All to select all check boxes.

You can clear a selected processor at any time and select a new processor from the list. You can also select multiple processors at a time. If you clear a processor check box, the WindowViewer instance continues to run on that processor.

  1. Click OK. WindowViewer starts on the next CPU based on the other View sessions.



CoreAffinity2.pngThere is no need to download any additional utility, nor the need to make adjustments in the Task Manager, nor even make adjustments through the Registry.   All of this can be handled through the InTouch Application Manager.