Data Type

Integer

Default Value

Number of reported CPU cores.

Description

This is the number of compute tasks that FMS runs in parallel. By default, this value is set to the number of CPU cores in the system. This allows a single FMS job to use all system resources and complete as fast as possible.

The value of MAXCPU is loosely coupled to the number of CPU cores in the system. MAXCPU controls the number of tasks that FMS places in the queue for execution. This may be greater or less than the number of CPU cores.

If you run multiple FMS jobs simultaneously, you may want to decrease the default value of MAXCPU to reduce contention for CPU cores. What counts is the sum of the values of MAXCPU in all concurrent FMS jobs. If this value is less than the number of CPU cores, the system is under-subscribed. If this value is greater than the number of CPU cores, the system is oversubscribed.

By default most desktop systems (PC's, Workstations) have hyperthreading turned on. This causes the system to state more CPU cores than are physically present. The intention is to allow scheduling of multiple tasks for each CPU core, thereby increasing overall throughput for random work loads. Hyperthreading offers no performance benefit for FMS, because each thread is designed to use 100% of the CPU core resources. Scheduling multiple FMS threads on a single CPU core actually decreases performance as the threads compete for shared resources. Hyperthreading can be turned off, which is usually an option in the BIOS. If this is not possible, setting MAXCPU to the number of physical CPU cores will provide most of the benefit.

Setting MAXCPU to a value greater than the number of CPU cores will always degrade performance.