The value of MAXCPU is loosely coupled to the number of processors 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 processors.
If you run multiple FMS jobs simultaneously, you may want to decrease the default value of MAXCPU to reduce contention for the processors. What counts is the sum of the values of MAXCPU in all concurrent FMS jobs. If this value is less than the number of processors, the system is under subscribed. If this value is greater than the number of processors, the system is oversubscribed.
Some over subscription of the processors will usually increase throughput, especially if the non-FMS part of your application has not been converted to run in parallel. A few tests will usually show the best combination of MAXCPU for the concurrent FMS jobs. Note that each individual FMS job can have a different value of MAXCPU.
Setting MAXCPU to a value greater than the number of processors will always degrade performance.