How application profiles interact with queue and job parameters

Application profiles operate in conjunction with queue and job-level options. In general, you use application profile definitions to refine queue-level settings, or to exclude some jobs from queue-level parameters.

Application profile settings that override queue settings

The following application profile parameters override the corresponding queue setting:
  • CHKPNT_DIR—overrides queue CHKPNT=chkpnt_dir

  • CHKPNT_PERIOD—overrides queue CHKPNT=chkpnt_period

  • JOB_STARTER

  • LOCAL_MAX_PREEXEC_RETRY

  • MAX_JOB_PREEMPT

  • MAX_JOB_REQUEUE

  • MAX_PREEXEC_RETRY

  • MAX_TOTAL_TIME_PREEMPT

  • MIG

  • NICE

  • NO_PREEMPT_INTERVAL

  • REMOTE_MAX_PREEXEC_RETRY

  • REQUEUE_EXIT_VALUES

  • RESUME_CONTROL—overrides queue JOB_CONTROLS

  • SUSPEND_CONTROL—overrides queue JOB_CONTROLS

  • TERMINATE_CONTROL—overrides queue JOB_CONTROLS

Application profile limits and queue limits

The following application profile limits override the corresponding queue-level soft limits:
  • CORELIMIT

  • CPULIMIT

  • DATALIMIT

  • FILELIMIT

  • MEMLIMIT

  • PROCESSLIMIT

  • RUNLIMIT

  • STACKLIMIT

  • SWAPLIMIT

  • STACKLIMIT

  • THREADLIMIT

Job-level limits can override the application profile limits. The application profile limits cannot override queue-level hard limits.

Processor limits

PROCLIMIT in an application profile specifies the maximum number of slots that can be allocated to a job. For parallel jobs, PROCLIMIT is the maximum number of processors that can be allocated to the job.

You can optionally specify the minimum and default number of processors. All limits must be positive integers greater than or equal to 1 that satisfy the following relationship:

1 <= minimum <= default <= maximum

Job-level processor limits (bsub -n) override application-level PROCLIMIT, which overrides queue-level PROCLIMIT. Job-level limits must fall within the maximum and minimum limits of the application profile and the queue.

Absolute run limits

If you want the scheduler to treat any run limits as absolute, define ABS_RUNLIMIT=Y in lsb.params or in lsb.applications for the application profile associated with your job. When ABS_RUNLIMIT=Y is defined in lsb.params or in the application profile, the run time limit is not normalized by the host CPU factor. Absolute wall-clock run time is used for all jobs submitted with a run limit configured.

Pre-execution

Queue-level pre-execution commands run before application-level pre-execution commands. Job level pre-execution commands (bsub -E) override application-level pre-execution commands.

Post-execution

When a job finishes, application-level post-execution commands run, followed by queue-level post-execution commands if any.

If both application-level and job-level post-execution commands (bsub -Ep) are specified, job level post-execution overrides application-level post-execution commands. Queue-level post-execution commands run after application-level post-execution and job-level post-execution commands

Chunk job scheduling

CHUNK_JOB_SIZE in an application profile ensures that jobs associated with the application are chunked together. CHUNK_JOB_SIZE=1 disables job chunk scheduling. Application-level job chunk definition overrides chunk job dispatch configured in the queue.

CHUNK_JOB_SIZE is ignored and jobs are not chunked under the following conditions:

  • CPU limit greater than 30 minutes (CPULIMIT parameter in lsb.queues or lsb.applications)

  • Run limit greater than 30 minutes (RUNLIMIT parameter in lsb.queues or lsb.applications)

  • Run time estimate greater than 30 minutes (RUNTIME parameter in lsb.applications)

If CHUNK_JOB_DURATION is set in lsb.params, chunk jobs are accepted regardless of the value of CPULIMIT, RUNLIMIT or RUNTIME.

Rerunnable jobs

RERUNNABLE in an application profile overrides queue-level job rerun, and allows you to submit rerunnable jobs to a non-rerunnable queue. Job-level rerun (bsub -r or bsub -rn) overrides both the application profile and the queue.