Processor Group Options
Datasheet internal name: core_ProcessorGroupOption
Note
Processor Group is an advanced SyncroSim feature available only for Windows machines with over 64 processors and Windows 7 OS (64 bit) or later.
A Processor Group is a logical group of up to 64 processors. Windows 7 (or greater) will create enough Processor Groups to accommodate all the processors it finds. For example, the table below shows how Windows would create Processor Groups for a 128 processor machine.
| Group | Total Processors |
|---|---|
| Group 1 | 64 |
| Group 2 | 64 |
Windows has assigned the first 64 processors to Group 1 and the remaining processors to Group 2.
SyncroSim supports using Processor Groups for Multi-Processing (MP) runs under Windows. To take advantage of more than 64 processors, SyncroSim must explicitly assign its threads to Processor Groups. If it does not, all threads will be assigned to processors in Group 0 (the default Group). This will result in multiple threads being assigned to the same processor which can degrade performance.
The Processor Group Options system datasheet contains the following fields and options:
| Display Name | Internal Name | Optional | Data Type | Default |
|---|---|---|---|---|
| Configure processor groups | ConfigureProcessorGroups | No | Boolean | False |
| Assign jobs to individual processors | ExplicitProcessorAffinity | No | Boolean | False |
Configure processor groups
Determines whether Processor Group assignment is enabled at model run time. If this option is not enabled, SyncroSim will not assign threads to Processor Groups and all threads will be assigned to Group 0.
Assign jobs to individual processors
If enabled, then the user can subvert the Windows scheduler to tell SyncroSim to explicitly assign each job to a processor. This is known as setting the processor affinity, and could result in some performance gains dependening on your system. The specific settings for assigning processor groups are defined by the Processor Group Values system datasheet.
Algorithm
If you enable Processor Groups, SyncroSim will assign each job to a group in round-robin fashion. If one Processor Group has fewer processors than another, then it will be removed from the rotation when all its processors haved been used. This ensures that you don't end up with a Group that has a higher ratio of jobs to processors. If there are still jobs after all Groups have been assigned one job per processor, then the Group with fewer processors will be added back into the rotation and the process will repeat.
For example, imagine you had a group configuration where Group 0 has 5 processors and Group 1 has 3 processors:
G0: p1 p2 p3 p4 p5
G1: p1 p2 p3
If you enable Processor Groups without enabling explicit processor affinity, the first three jobs will be assigned to the groups as follows:
Job 1 assigned G0 with no explicit processor affinity
Job 2 assigned G1 with no explicit processor affinity
Job 3 assigned G0 with no explicit processor affinity
However, if you enable processor affinity, the first three jobs will be assigned to the groups as follows:
Job 1 assigned G0 with explicit processor affinity for P1
Job 2 assigned G1 with explicit processor affinity for P1
Job 3 assigned G0 with explicit processor affinity for p2
Note
In the SyncroSim UI, the Processor Group Options system datasheet is displayed within the Processing Groups category, under the Multiprocessing tab.