SyncroSim documentation home
Show / Hide Table of Contents

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.

In This Article

Back to top Copyright 2007-2026 Apex Resource Management Solutions Ltd.
Generated by DocFX