This subroutine finds about the number of processors that the job runs on:
n2 = NUMBER_OF_PROCESSORS()
and then simply checks if that number can be represented as
The subroutine goes about its business by trying to divide the returned number of nodes by 11, then by 7, then by 5, and finally by 3. Because in the latter case i can be 0, 1, or 2, the logic is a little more convoluted, i.e., we have to check both for 31 and 32.
The subroutine also checks if there is a 2h factor in n2, but
it does not check if h is less than 25, which is going to
cause problems on machines with more than
225 = 33,554,432
processors. That check is done by calling function
minpower2.
The resulting powers are returned on an array pn_fac:
If the number of nodes is not of the form