What's new in IBM Spectrum LSF Version 10.1 Fix Pack 1

The following topics summarize the new and changed behavior in LSF 10.1 Fix Pack 1

Release date: 11 November 2016

Simplified affinity requirement syntax

Job submission with affinity requirements for LSF jobs is simplified. An esub script that is named esub.p8aff is provided to generate optimal affinity requirements based on the input requirements about the submitted affinity jobs. In addition, LSF supports OpenMP thread affinity in the blaunch distributed application framework. LSF MPI distributions must integrate with LSF to enable the OpenMP thread affinity.

For the generated affinity requirements, LSF tries to reduce the risk of CPU bottlenecks for the CPU allocation in LSF MPI task and OpenMP thread levels.

For more information, see Submit jobs with affinity resource requirements on IBM POWER8 systems.

bsub and bmod commands export memory and swap values as esub variables

Specifying mem and swp values in an rusage[] string tell LSF how much memory and swap space a job requires, but these values do no limit job resource usage.

The bsub and bmod commands can export mem and swp values in the rusage[] string to corresponding environment variables for esub. You can use these environment variables in your own esub to match memory and swap limits with the values in the rusage[] string. You also can configure your esub to check whether the memory and swap resources are correctly defined for the corresponding limits for the job, queue, or application. If the resources are not correctly defined, LSF rejects the job.

The following environment variables are exported:
  • If the bsub or bmod command has a mem value in the rusage[] string, the LSB_SUB_MEM_USAGE variable is set to the mem value in the temporary esub parameter file that the LSB_SUB_PARAM_FILE environment variable points to. For example, if the bsub command has the option -R "rusage[mem=512]", the LSB_SUB_MEM_USAGE=512 variable is set in the temporary file.
  • If the bsub or bmod command has a swp value in the rusage[] string, the LSB_SUB_SWP_USAGE variable is set to the mem value in the temporary esub parameter file that the LSB_SUB_PARAM_FILE environment variable points to. For example, if the bsub command has the option -R "rusage[swp=1024]", the LSB_SUB_SWP_USAGE=1024 variable is set in the temporary file.

For more information on LSB_SUB_MEM_USAGE or LSB_SUB_SWP_USAGE, see Configuration to enable job submission and execution controls.

Allow queues to ignore RETAIN and DURATION loan policies

The LOAN_POLICIES parameter in the lsb.resources file allows other jobs to borrow unused guaranteed resources LSF. You can enable queues to ignore the RETAIN and DURATION loan policies when LSF determines whether jobs in those queues can borrow unused guaranteed resources. To enable the queue to ignore the RETAIN and DURATION loan policies, specify an exclamation point (!) before the queue name in the LOAN_POLICIES parameter definition.

For more information, see Configuration overview of guaranteed resource pools.

Running LSF jobs in Docker containers

The Docker integration allows LSF to run jobs in Docker containers on demand. LSF manages the entire lifecycle of jobs that run in the container as common jobs.

LSF supports the use of Docker Engine, Version 1.12, or later, which must be installed on an LSF server host.

For more information, see IBM Spectrum LSF with Docker.

Running LSF jobs in Amazon Web Services instances

You can configure LSF to make allocation requests on from Amazon Web Services (AWS). With AWS configured as a resource provider in LSF resource connector, LSF can launch instances from AWS to satisfy pending workload. The AWS instances join the LSF cluster, and are terminated when they become idle.

LSF resource connector with AWS was tested on the following systems:

  • LSF10.1 master host - Linux x86 Kernel 3.10, glibc 2.17 RHEL 7.x
  • VMs - Linux x86 Kernel 3.10, glibc 2.17 CentOS 7.x

LSF resource connector with AWS is assumed to work on the following systems:

  • IBM Spectrum LSF10.1
  • Linux x86 Kernel 2.6, glibc 2.5 RHEL 5.x
  • Linux x86 Kernel 2.6, glibc 2.11 RHEL 6.x
  • Linux x86 Kernel 3.0, glibc 2.11 SLES 11.x
  • Linux x86 Kernel 3.11, glibc 2.18 SLES 12.x
  • Linux x86 Kernel 4.4, glibc 2.23 Ubuntu 16.04 LTS

For more information, see Using the IBM Spectrum LSF Resource Connector.

Job array performance enhancements

The performance of job array scheduling and execution is improved.

The performance of scheduling, dispatch, and execution of job array elements is affected when array elements are split from their original submitted array under various conditions. For example, if rerunnable array elements are dispatched but fail to run, the elements return to pending state. The LSF scheduler has already split these elements when job was dispatched to execution hosts. The split array elements can remain pending for an excessive amount of time.

For an array jobs with dependency conditions, LSF publishes separate job ready events to the scheduler for each element when the condition is satisfied. The scheduler splits the elements when it handles the job ready events.

The following performance improvements are made:
  • Optimized recovery performance in the scheduler for jobs with many separate array elements.
  • Improved handling of satisfied dependency conditions for array jobs.
  • Improved dependency checking for array jobs to reduce the number of job ready events that are published to the scheduler.
  • Improved the processing of events for multiple array elements for job ready event handling.
  • Optimized event handling performance in the scheduler for array jobs with many split elements
  • Improved handing job stop and resume, and events associated with moving jobs to the top and bottom of the queue with the bbot and btop commands.

New platform support

LSF supports the following platforms:
  • Intel Knights Landing (Linux x86-64 packages)