Specify hard CPU affinity

You can also specify the management host CPUs on which mbatchd child daemon query processes can run. This so-called hard CPU affinity improves mbatchd daemon scheduling and dispatch performance by binding query processes to specific CPUs so that higher priority mbatchd daemon processes can run more efficiently.

About this task

You can specify the management host CPUs on which mbatchd child query processes can run (hard CPU affinity). This improves mbatchd daemon scheduling and dispatch performance by binding query processes to specific CPUs so that higher priority mbatchd processes can run more efficiently.

When you define the MBD_QUERY_CPUS parameter in the lsb.params file, LSF runs mbatchd child query processes only on the specified CPUs. The operating system can assign other processes to run on the same CPU, however, if utilization of the bound CPU is lower than utilization of the unbound CPUs.

Procedure

  1. Identify the CPUs on the management host that will run mbatchd child query processes.
    • On Linux, get a list of valid CPUs with the following command:

      /proc/cpuinfo

    • On Solaris, get a list of valid CPUs with the following command:

      psrinfo

  2. In the file lsb.params, define the parameter MBD_QUERY_CPUS.

    For example, the following parameter specifies that the mbatchd child query processes run only on CPU numbers 1 and 2 on the management host:

    MBD_QUERY_CPUS=1 2

    You can specify CPU affinity only for management hosts that use one of the following operating systems:
    • Linux 2.6 or higher
    • Solaris 10 or higher

    If failover to a management host candidate occurs, LSF maintains the hard CPU affinity, provided that the management host candidate has the same CPU configuration as the original management host. If the configuration differs, LSF ignores the CPU list and reverts to default behavior.

  3. Enable the LSF to bind a defined set of LSF daemons to CPUs by defining LSF_INTELLIGENT_CPU_BIND=Y in the lsf.conf file.
  4. Verify that the mbatchd child query processes are bound to the correct CPUs on the management host.
    1. Start up a query process by running a query command such as bjobs.
    2. Check to see that the query process is bound to the correct CPU.
      • On Linux, run the command taskset -p <pid>
      • On Polaris, run the command ps -AP