LSF can consider the number of CPUs when using fairshare scheduling with parallel jobs.
If the job is submitted with bsub -n, the following formula is used to calculate dynamic priority:
dynamic priority = number_shares / (cpu_time * CPU_TIME_FACTOR + run_time * number_CPUs * RUN_TIME_FACTOR + (1 + job_slots )* RUN_JOB_FACTOR + fairshare_adjustment(struc* shareAdjustPair)*FAIRSHARE_ADJUSTMENT_FACTOR)
where number_CPUs is the number of CPUs used by the job.