CPU Binding
CPU binding constrains a simulation to run only on a particular set of CPUs or cores, and not to migrate to others during the life of the simulation.
CPU binding is turned on by default as binding processes can improve the performance of Simcenter STAR-CCM+. In the Simcenter STAR-CCM+ command line, you use the -cpubind option to alter the default CPU binding.
For parallel simulations, there are two binding policies that you can specify using the following argument:
-cpubind <policy>
Where <policy> is:
- bandwidth - default option that allocates processes to cores in a way which maximizes the available memory bandwidth
- latency - allocates processes to all cores on the same socket before allocating to additional sockets
If you do not specify a policy in the argument, the default policy is used.
To request a report of the CPU binding in parallel, type:
-cpubind v
or
-cpubind <policy>, v
You can also specify vv
instead of v
for increased
verbosity.
When Simcenter STAR-CCM+ identifies another Simcenter STAR-CCM+ server running on any of the hosts that are being used, it makes sure that the two Simcenter STAR-CCM+ processes are never bound to the same CPU core.
You can manually deactivate CPU binding by typing the following argument in the command line while launching Simcenter STAR-CCM+:
-cpubind off
If CPU binding is taken care of by external
mechanisms (such as MPI-specific command line flags, environment variables, or other
tools), you must specify -cpubind off
to prevent Simcenter STAR-CCM+ from overriding the external binding. Without
-cpubind off
, the internal CPU binding of Simcenter STAR-CCM+ takes precedence.
On CPUs that have different types of cores with different efficiency and performance characteristics (that is, heterogeneous or hybrid CPUs), the lowest performing core type is automatically excluded from the binding policy. To make use of all cores irrespective of their performance characteristics, CPU binding needs to be deactivated.