lsb.queues

lsb.queues 파일은 배치 큐를 정의합니다. 클러스터 관리자가 사이트 정책을 사용자 정의할 수 있도록 큐 레벨에서 여러 제어를 사용할 수 있습니다.

이 파일은 선택사항입니다. 큐가 구성되지 않은 경우 LSF는 다음과 같은 이름의 큐를 작성합니다.default모든 매개변수가 기본값으로 설정되어 있습니다.

이 파일은 기본적으로 LSB_CONFDIR/cluster_name/configdir에 설치됩니다.

lsb.queues 구성 변경

lsb.queues를 변경한 후 badmin reconfig 를 실행하여 mbatchd 디먼을 재구성하십시오.

실행 창 및 런타임 한계와 같은 일부 매개변수는 작업 실행 호스트에서 mbatchd restart 또는 sbatchd restart 를 실행하지 않으면 작업 실행에 즉시 적용되지 않습니다.

lsb.queues 구조

각 큐 정의는 큐 시작 행으로 시작하고 큐 종료행으로 끝납니다. 큐 이름을 지정해야 합니다. 기타 모든 매개변수는 선택사항입니다.

#include

구문

#INCLUDE "path-to-file"

설명

다른 파일의 구성 설정을 현재 위치에 삽입합니다. 이 지시문을 사용하여 포함된 파일에 대한 쓰기 액세스를 특정 사용자 또는 사용자 그룹에 제공하여 구성의 일부를 다른 사용자 또는 사용자 그룹에 전용으로 지정하고, 다른 클러스터에서 구성 파일 설정의 일관성을 보장합니다 ( LSF 다중 클러스터 기능을 사용하는 경우).

자세한 내용은 공유 구성 파일 콘텐츠를 참조하세요.

#INCLUDE 는 로컬 구성 파일의 임의의 위치에 삽입할 수 있습니다.

기본값

정의되지 않음.

관리자

큐 관리자의 공백으로 구분된 목록을 지정합니다. 큐 관리자는 큐에 있는 모든 사용자 작업 및 큐 자체에서 조작할 수 있습니다.

구문

ADMINISTRATORS=사용자_이름 | 사용자_그룹...

설명

Windows 사용자 계정 또는 사용자 그룹을 지정하려면 도메인 이름을 대문자( 도메인 이름\ 사용자 이름 또는 도메인 이름\ user_group).

기본값

정의되지 않음. 이 큐에서 조작하려면 클러스터 관리자여야 합니다.

API 우선순위

절대 우선순위 스케줄링 (APS) 에 대한 계산 요인을 지정합니다. 큐에서 보류 중인 작업은 계산된 APS값에 따라 정렬됩니다.

구문

APS_PRIORITY=WEIGHT[[factor, value] [subfactor, value] ...] LIMIT[[factor, value] [subfactor, value] ...] ...] GRACE_PERIOD[[factor, value] [subfactor, value] ...] ...]

설명

하위 요인의 가중치가 정의되었지만 상위 요인의 가중치가 정의되지 않은 경우 상위 요인 가중치는 1로 설정됩니다.

WEIGHT및 LIMIT 인수는 부동 소수점 값입니다. GRACE_PERIOD (values), 분 (valuem) 또는 시간 (valueh) 에 대해 을 지정하십시오.

APS_PRIORITY의 최대값은 1000000.00입니다.

유예 기간의 기본 단위는 시간입니다.

다음은 지정할 요인 및 하위 요인의 이름입니다.

요인 하위 요인 메트릭
FS (사용자 기반 적정 공유 요인) 기존 적정 공유 기능은 동적 사용자 우선순위를 조정합니다. 적정 공유 요인은 동적 사용자 우선순위에 따라 APS값을 자동으로 조정합니다.

FAIRSHARE 매개변수를 큐에 정의해야 합니다. 비적정 공유 큐의 경우 FS 요소가 무시됩니다.

FS 인수는 lsb.queues 또는 lsb.params 파일에 정의된 다음과 같은 적정 공유 매개변수의 영향을 받습니다.

  • CPU_TIME_FACTOR
  • FWD_JOB_FACTOR
  • RUN_TIME_FACTOR
  • RUN_JOB_FACTOR
  • HIST_HOURS
RSRC (자원 요인) PROC 요청된 태스크는 bsub -n min_task의 최대값, max_task, bsub -n min의 최소값 또는 lsb.queues 파일의 TASKLIMIT 매개변수 값입니다.
MEM 요청된 총 실제 메모리 (MB 또는 lsf.conf 파일의 LSF_UNIT_FOR_LIMITS 매개변수에 설정된 단위).

사용 문자열에서 || 기호의 오른쪽에 표시되는 메모리 요청은 APS 계산에서 무시됩니다.

다중 단계 메모리 예약의 경우 APS값은 예약 메모리의 첫 번째 단계를 기반으로 합니다.

SWAP 요청된 총 스왑 공간 (MB 또는 lsf.conf 파일의 LSF_UNIT_FOR_LIMITS 매개변수에 설정된 단위).

MEM에서와 같이 사용 문자열에서 || 기호의 오른쪽에 표시되는 스왑 공간 요청은 무시됩니다.

WORK (작업 속성) JPRIORITY 다음으로 지정되는 작업 우선순위입니다.
  • lsb.params 파일에서 MAX_USER_PRIORITY 매개변수 값의 절반으로 지정되는 기본값
  • bsub -sp 또는 bmod -sp 의 사용자
  • lsb.params 파일에서 JOB_PRIORITY_OVER_TIME 매개변수를 사용하는 자동 우선순위 에스컬레이션

lsb.params 파일의 TRACK_ELIGIBLE_PENDINFO 매개변수가 Y 또는 y로 설정된 경우, LSF 는 스케줄링에 적합한 경우 보류 중인 작업의 작업 우선순위를 높입니다. LSF 는 부적합한 보류 중인 작업에 대한 작업 우선순위를 늘리지 않습니다.

QPRIORITY 제출 큐의 우선순위입니다.
APP   lsb.applications 파일에서 PRIORITY 매개변수를 지정하여 애플리케이션 프로파일 레벨에서 우선순위 요인을 설정하십시오. APP_PRIORITY 요인이 계산된 APS값에 추가되어 요인 값을 변경합니다. APP_PRIORITY 요소는 전체 작업에 적용됩니다.
USER   lsb.users 파일의 User 섹션에서 PRIORITY 매개변수를 지정하여 사용자의 우선순위 요인을 설정하십시오. USER_PRIORITY 요인이 계산된 APS값에 추가되어 요인 값을 변경합니다. USER_PRIORITY 요소는 전체 작업에 적용됩니다.
UG   lsb.users 파일의 UserGroup 섹션에서 PRIORITY 매개변수를 지정하여 사용자 그룹의 우선순위 요인을 설정하십시오. UG_PRIORITY 요인이 계산된 APS값에 추가되어 요인 값을 변경합니다. UG_PRIORITY 요소는 전체 작업에 적용됩니다. LSFbsub -G 옵션에 지정된 대로 사용자 그룹의 우선순위를 사용합니다.
ADMIN   관리자는 bmod -aps 를 사용하여 각 작업에 대해 이 하위 요인 값을 설정합니다. 양수 값은 APS를 증가시킵니다. 음수 값은 APS를 줄입니다. ADMIN 요인이 계산된 APS값에 추가되어 요인 값을 변경합니다. ADMIN 요소는 전체 작업에 적용됩니다. 별도의 가중치, 한계 또는 유예 기간 요인을 구성할 수 없습니다. ADMIN 요소는 설정되는 즉시 적용됩니다.
예를 들어, 다음은 MEM 요인에 대해 10시간, JPRIORITY 요인에 대해 10분, QPRIORITY 요인에 대해 10초, RSRC 요인에 대해 10시간 (기본값) 의 유예 기간을 설정합니다.
GRACE_PERIOD[[MEM,10h] [JPRIORITY, 10m] [QPRIORITY,10s] [RSRC, 10]]

요인 또는 하위 요인의 WEIGHT, LIMITGRACE_PERIOD0 (영) 을 지정할 수 없습니다.

APS큐는 큐 간 적정 공유 (FAIRSHARE_QUEUES) 를 구성할 수 없습니다. QUEUE_GROUP 매개변수는 LSF 7.0에서 더 이상 사용되지 않는 FAIRSHARE_QUEUES를 대체합니다.

일시중단된 (bstop) 작업 및 마이그레이션된 작업 (bmig) 은 항상 보류 중인 작업 전에 스케줄됩니다. 마이그레이션된 작업의 경우 LSF는 기존 작업 우선순위 정보를 유지합니다.

LSB_REQUEUE_TO_BOTTOM및 LSB_MIG2PEND 가 lsf.conf에 구성된 경우, 마이그레이션된 작업은 해당 APS 정보를 유지합니다. LSB_REQUEUE_TO_BOTTOM및 LSB_MIG2PEND 가 구성된 경우, 마이그레이션된 작업은 APS값을 기반으로 다른 보류 중인 작업과 경합해야 합니다. APS값을 재설정하려면 bmig가 아닌 brequeue를 사용하십시오.

기본값

정의되지 않음

백FILL

큐에 대한 백필 (backfill) 스케줄링을 사용합니다.

구문

BACKFILL=Y | N

설명

큐에 대한 다시 채우기 스케줄링을 사용하려면 이 매개변수를 Y로 설정하십시오.

BACKFILLPREEMPTION 가 함께 지정된 경우 가능한 충돌이 존재합니다. PREEMPT_JOBTYPE = BACKFILL 가 lsb.params 파일에 설정되어 있으면 백필 큐를 선점할 수 있습니다. 그렇지 않으면 백필 큐를 선점할 수 없습니다. BACKFILL 가 사용 가능한 경우 PREEMPTION = PREEMPTABLE도 지정하지 마십시오.

BACKFILL 는 인터럽트 가능한 백필 큐 (INTERRUPTIBLE_BACKFILL=seconds) 에 필요합니다.

MAX_SLOTS_IN_POOL, SLOT_RESERVEBACKFILL 가 동일한 큐에 대해 정의된 경우 큐의 작업은 동일한 큐의 다른 작업에서 예약된 슬롯으로 다시 채울 수 없습니다.

기본값

정의되지 않음. 백필링이 없습니다.

Cgroup_cpu_shares_factor

구문

CGROUP_CPU_SHARES_FACTOR=iNTEGER_AS_PERCENTAGE

설명

수정 팩 15부터 관리자는 CGROUP_CPU_SHARES_FACTOR 매개변수를 사용하여 cpu.sharescpu.weight Linux cgroup (v1 또는 v2) 인터페이스에 대한 기본값의 백분율을 지정하여 CPU 사용량이 적은 작업에 실행 중인 다른 모든 작업과 동일한 CPU 점유율 또는 가중치를 받지 않고 다른 작업의 일부만 할당할 수 있도록 할 수 있습니다. cpu.sharescpu.weight 의 초기 값은 이 CGROUP_CPU_SHARES_FACTOR 값에 따라 조정됩니다(구성한 경우). CGROUP_CPU_SHARES_FACTOR 값은 애플리케이션 프로필 및 대기열 수준에서 지정할 수 있습니다. 여러 레벨로 정의된 경우 LSF 은 가장 작은 값을 사용합니다. 매개변수를 CGROUP_CPU_SHARES_FACTOR 사용하려면, 파일 lsf.conf 내의 LSB_CGROUP_CPU_SHARES_OLD_DEFAULT 매개변수가 또는 N 로 설정되어 n 있는지, 또는 기본값인 정의되지 않은 상태로 남겨져 있는지 확인하십시오.

이 값은 백분율을 나타내므로 100보다 작은 양의 정수를 지정합니다. 예를 들어 CGROUP_CPU_SHARES_FACTOR=25cpu.sharescpu.weight 값의 25%의 CPU 점유율 계수를 나타냅니다.

기본값

정의되지 않음

체크포인트

큐에 대한 자동 체크포인트를 사용합니다. 큐에 제출되는 모든 작업은 체크포인트 가능합니다.

구문

CHKPNT=chkpnt_dir [chkpnt_period ]

설명

체크포인트 디렉토리는 체크포인트 파일이 작성되는 디렉토리입니다. CWD에 대한 절대 경로 또는 상대 경로를 지정하십시오. 환경 변수를 사용하지 마십시오.

선택적 체크포인트 기간 (분) 을 지정하십시오.

청크 작업의 실행 중인 멤버만 체크포인트할 수 있습니다.

체크포인트 관련 구성이 큐 및 애플리케이션 프로파일 모두에 지정된 경우 애플리케이션 프로파일 설정이 큐 레벨 구성을 대체합니다.

큐, 애플리케이션 프로파일 및 작업 레벨에 지정된 체크포인트 관련 구성은 다음과 같은 영향을 미칩니다.
  • 애플리케이션 레벨 및 작업 레벨 매개변수가 병합됩니다. 동일한 매개변수가 작업 레벨 및 애플리케이션 프로파일 모두에 정의된 경우, 작업 레벨 값이 애플리케이션 프로파일 값을 대체합니다.
  • 작업 레벨 및 애플리케이션 프로파일 설정의 병합된 결과는 큐 레벨 구성을 대체합니다.

다중 클러스터 작업의 체크포인트를 사용하려면 전송 작업 및 수신 작업 큐 ( lsb.queues의 CHKPNT) 또는 제출 클러스터 및 실행 클러스터 모두의 애플리케이션 프로파일 (CHKPNT_DIR, CHKPNT_PERIOD, CHKPNT_INITPERIOD, lsb.applications의 CHKPNT_METHOD) 에 체크포인트 디렉토리를 정의하십시오. LSF는 실행 클러스터에 지정된 디렉토리를 사용합니다.

다중 클러스터 작업을 체크포인트 가능하게 하려면 제출 및 실행 큐 모두 체크포인트를 사용 가능하게 해야 하며 실행 클러스터의 애플리케이션 프로파일 또는 큐 설정이 체크포인트 디렉토리를 판별합니다. 작업이 전용 호스트에서 실행되는 경우 체크포인트가 지원되지 않습니다.

체크포인트 디렉토리의 파일 경로는 UNIX및 Linux의 경우 최대 4000자, Windows의 경우 디렉토리 및 파일 이름을 포함하여 최대 255자를 포함할 수 있습니다.

기본값

정의되지 않음

커미트된 실행 시간 요인

커미트된 런타임 가중치 요인을 지정합니다. 적정 공유 스케줄링에서만 사용됩니다.

구문

COMMITTED_RUN_TIME_FACTOR=번호

설명

사용자 동적 우선순위의 계산에서 이 요소는 계산에서 커미트된 런타임의 상대적 중요도를 판별합니다. bsub-W 옵션이 작업 제출 시 지정되지 않고 RUNLIMIT 가 큐에 대해 설정되지 않은 경우, 커미트된 런타임은 고려되지 않습니다.

정의되지 않은 경우 동일한 이름의 lsb.params 매개변수에서 클러스터 전체 값이 사용됩니다.

유효한 값은

0.0 과 1.0 사이의 양수

기본값

정의되지 않음.

CONTAINER

구문

CONTAINER=podman[image(image_name) options(podman_run_options)]

CONTAINER=docker[image(image_name) options(docker_run_options) container_io() job_pre_post()]

CONTAINER=nvidia-docker[image(image_name) options(docker_run_options)]

CONTAINER=shifter[image(image_name) options(container_options)]

CONTAINER=singularity[image(image_name) options(container_options)]

CONTAINER=apptainer[image(image_name) options(apptainer_options]

CONTAINER=enroot[image(image_name) options(enroot_start_options)]

설명

LSF 가 이 큐에 제출된 작업에 대해 지원되는 컨테이너를 사용할 수 있도록 합니다. 이 매개변수는 다음 키워드를 사용합니다.

포드맨 | 도커 | nvidia-도커 | 변속기 | 특이점 어플리테이터| 어플리테이터 | 이주
필수입니다. 이 큐에 제출된 작업에 사용할 컨테이너 유형을 지정하려면 이 키워드 중 하나를 사용하십시오.
이미지
필수입니다. 이 키워드는 실행 중인 작업에서 사용되는 이미지 이름을 지정합니다.

Podman, Docker, Docker, Enroot 작업의 경우, 사용자가 작업 제출 시 컨테이너 작업의 이미지 이름을 지정할 수 있도록 하려면 환경 변수 $LSB_CONTAINER_IMAGE 를 사용하십시오. 작업 제출 시 사용자는 $LSB_CONTAINER_IMAGE 환경 변수의 값을 지정하여 지정된 저장소 서버에 있는 특정 이미지 이름을 지정할 수 있습니다.

options
선택사항. 이 키워드는 컨테이너에 대한 작업 실행 옵션을 지정합니다.

사전 실행 스크립트를 실행하려면 실행 호스트가 액세스할 수 있어야 하는 스크립트에 대한 전체 파일 경로 및 at 기호 (@) 를 지정하십시오. 컨테이너 작업을 실행하기 전에 LSFLSF 관리자 권한으로 이 스크립트를 실행합니다. 스크립트가 실행되는 동안 작업의 환경 변수가 스크립트에 전달됩니다. 스크립트 실행이 완료되면 출력이 컨테이너 시작 옵션으로 사용됩니다. 스크립트는 이 출력을 한 행에 제공해야 합니다. 컨테이너 작업 처리 방법은 사전 실행 스크립트의 결과에 따라 다릅니다.

  • 사전 실행 스크립트가 실패하면 컨테이너 작업이 스크립트의 동일한 종료 코드로 종료됩니다. 또한 스크립트 실행 실패로 인해 작업이 종료되었음을 사용자에게 알리기 위해 외부 상태 메시지가 전송됩니다.
  • 스크립트 실행에 성공했지만 출력에 512개가 넘는 옵션이 포함되어 있는 경우, LSF 는 처음 512개의 옵션만 유지하고 나머지 옵션은 무시됩니다.
  • 스크립트 실행에 성공하고 출력이 유효한 경우, 출력은 옵션을 실행하는 컨테이너 작업의 일부입니다. 옵션에서 스크립트의 출력 위치는 사용자가 옵션 필드에서 스크립트를 구성한 정확한 위치입니다.
Docker 와 Docker 컨테이너의 경우, 이 키워드는 작업 컨테이너에 전달되는 docker run 명령에 대한 Docker 작업 실행 옵션을 지정합니다.
참고:
  • Docker 작업 실행 옵션을 지정하기 전에 이러한 옵션이 명령행에서 docker run 명령과 함께 작동하는지 확인하십시오.
  • -- cgroup-parent-- user (또는 -u) 옵션은 LSF 내부용으로 예약되어 있습니다. 옵션 키워드 구성에서 이러한 옵션을 사용하지 마십시오. 그렇지 않으면 작업이 실패합니다.

    사전 실행 스크립트를 지정하고 이 스크립트의 출력에 -- cgroup-parent, -- user또는 -u가 포함된 경우, 컨테이너 작업도 실패합니다.

  • -w-- ulimit 옵션은 LSF에 대해 자동으로 설정됩니다. 이러한 스펙은 LSF 설정을 대체하므로 옵션 키워드 구성에서 이러한 옵션을 사용하지 마십시오.
  • -v 옵션은 LSF 에 필요한 작업 디렉토리 (예: 현재 작업 디렉토리, 작업 스풀 디렉토리, bsub -f 명령의 대상 파일, tmp 디렉토리, LSF_TOP및 요청 시 체크포인트 디렉토리) 를 마운트하기 위해 LSF 에서 자동으로 사용됩니다.
  • options 키워드 구성에서 -- rm 옵션을 구성하여 작업이 완료된 후 컨테이너를 자동으로 제거할 수 있습니다.
  • Docker 컨테이너를 작성할 때 LSF 를 사용으로 설정하여 Docker 컨테이너에 자동으로 이름을 지정할 수 있습니다. 이 기능을 사용하려면 lsfdockerlib.py 파일에서 ENABLE_CONTAINER_NAME 매개변수를 True 로 설정하십시오.

    컨테이너 이름은 다음 이름 지정 규칙을 사용합니다.

    • 일반 작업 및 blaunch 병렬 작업 컨테이너: <cluster_name>.job.<job_id>
    • 배열 작업 및 배열 blaunch 병렬 작업 컨테이너: <cluster_name>.job.<job_id>.<job_index>
    • blaunch 병렬 작업 태스크 컨테이너: <cluster_name>.job.<job_id>.task.<task_id>
    • 배열 blaunch 병렬 작업 태스크 컨테이너: <cluster_name>.job.<job_id>.<job_index>.task.<task_id>
  • 제한사항: -d 옵션을 사용하는 경우 LSF 는 Docker 작업의 상태를 다음과 같이 잘못 가져옵니다.DONE.
Shifter 컨테이너의 경우, 이 키워드는 작업 컨테이너로 전달되는 shifter 명령에 대한 Shifter 작업 실행 옵션을 지정합니다.
참고:
  • 명령행에서 shifter --help 를 실행하여 shifter 명령이 지원하는 옵션을 보십시오.
  • Shifter 작업 실행 옵션을 지정하기 전에 이러한 옵션이 명령행에서 shifter 명령과 함께 작동하는지 확인하십시오.
  • $LD_LIBRARY_PATH 디렉토리는 Shifter가 작업하는 데 사용하는 setuid 비트에 따라 정리됩니다. 따라서 $LD_LIBRARY_PATH 에 의존하는 프로그램이 작동하도록 하려면 (예: openmpi), udiRoot.conf 파일의 siteEnvAppend 섹션에 LD_LIBRARY_PATH 를 추가하여 컨테이너 내에서 setuid 비트를 올바르게 설정할 수 있는지 확인하십시오.
비정칙성 또는 컨테이너 컨테이너의 경우, 이 키워드는 작업 컨테이너에 전달되는 singularity exec 또는 or apptainer exec 명령에 대한 비정칙성 또는 컨테이너 작업 실행 옵션을 지정합니다.
참고:
  • 명령행에서 singularity exec --help 또는 apptainer exec --help 를 실행하여 singularity 또는 apptainer 명령이 지원하는 옵션을 보십시오.
  • 비정칙성 또는 Apptainer 작업 실행 옵션을 지정하기 전에 이러한 옵션이 명령행에서 singularity exec 또는 apptainer exec 명령과 함께 작동하는지 확인하십시오.
  • $LD_LIBRARY_PATH 디렉토리는 비정칙성 또는 Appter가 작업하는 데 사용하는 setuid 비트에 따라 정리됩니다. 따라서 $LD_LIBRARY_PATH 에 의존하는 프로그램의 경우 (예: openmpi), ld.so.conf 파일에 LD_LIBRARY_PATH 를 추가하여 컨테이너 내에서 setuid 비트를 올바르게 설정할 수 있는지 확인하고 ldconfig 명령을 실행하십시오.
Podman 컨테이너의 경우, 이 키워드는 작업 컨테이너에 전달되는 podman run 명령에 대한 Podman 작업 실행 옵션을 지정합니다.
참고:
  • Podman 작업 실행 옵션을 지정하기 전에 이러한 옵션이 명령행에서 podman run 명령과 함께 작동하는지 확인하십시오.
  • -- user (또는 -u) 옵션은 LSF 내부용으로 예약되어 있습니다. 옵션 키워드 구성에서 이러한 옵션을 사용하지 마십시오. 그렇지 않으면 작업이 실패합니다.

    사전 실행 스크립트를 지정하고 이 스크립트의 출력에 -- user또는 -u가 포함된 경우, 컨테이너 작업도 실패합니다.

  • -w-- ulimit 옵션은 LSF에 대해 자동으로 설정됩니다. 이러한 스펙은 LSF 설정을 대체하므로 옵션 키워드 구성에서 이러한 옵션을 사용하지 마십시오.
  • -v 옵션은 LSF 에 필요한 작업 디렉토리 (예: 현재 작업 디렉토리, 작업 스풀 디렉토리, bsub -f 명령의 대상 파일, tmp 디렉토리, LSF_TOP및 요청 시 체크포인트 디렉토리) 를 마운트하기 위해 LSF 에서 자동으로 사용됩니다.
  • options 키워드 구성에서 -- rm 옵션을 구성하여 작업이 완료된 후 컨테이너를 자동으로 제거할 수 있습니다.
  • 제한사항: -d 옵션을 사용하는 경우 LSF 는 Docker 작업의 상태를 다음과 같이 잘못 가져옵니다.DONE.
Enroot 컨테이너의 경우 이 키워드는 작업 컨테이너에 전달되는 enroot start 명령에 대한 Enroot 작업 실행 옵션을 지정합니다.
주: Enroot 작업 실행 옵션을 지정하기 전에 이러한 옵션이 명령행에서 enroot start 명령과 함께 작동하는지 확인하십시오.
컨테이너 입출력 함수
선택사항. 수정 팩 15부터 Docker 작업의 경우 LSF 출력 파일을 Docker 컨테이너 파일 시스템에 씁니다. 설정한 경우 job_pre_post() 키워드도 지정합니다.
job_pre_post()
선택사항. 수정 팩 15부터 Docker 작업의 경우 설정하면 LSF 에서 Docker 컨테이너 내에서 사용자 수준의 사전 실행 및 사후 실행 명령을 실행할 수 있습니다. 설정한 경우 container_io() 키워드도 지정합니다.

선택적 키워드를 지정하지 않고 컨테이너 작업과 함께 사용할 Ubuntu 이미지를 지정하려면 다음을 수행하십시오.
Begin Queue
QUEUE_NAME = podmanq
CONTAINER = podman[image(repository.example.com:5000/file/path/ubuntu:latest)]
DESCRIPTION = Podman User Service
End Queue
Begin Queue
QUEUE_NAME = dockerq
CONTAINER = docker[image(repository.example.com:5000/file/path/ubuntu:latest)
container_io() job_pre_post()]
DESCRIPTION = Docker User Service
End Queue
Begin Queue
QUEUE_NAME = ndockerq
CONTAINER = nvidia-docker[image(repository.example.com:5000/file/path/ubuntu:latest)]
DESCRIPTION = NVIDIA Docker User Service
End Queue
Begin Queue
QUEUE_NAME = shifterq
CONTAINER = shifter[image(ubuntu:latest)]
DESCRIPTION = Shifter User Service
End Queue
Begin Queue
QUEUE_NAME = singq
CONTAINER = singularity[image(/file/path/ubuntu.img)]
DESCRIPTION = Singularity User Service
End Queue
Begin Queue
QUEUE_NAME = apptainerq
CONTAINER = apptainer[image(/share/apptainer/images/ubuntu_latest.sif)]
DESCRIPTION = Apptainer User Service
End Queue
Begin Queue
QUEUE_NAME = enrootq
CONTAINER = enroot[image(repository.example.com:5000/file/path/ubuntu:latest)]
DESCRIPTION = Enroot User Service
End Queue
컨테이너 시작 옵션을 생성하는 /share/usr/ 디렉토리에서 사전 실행 스크립트를 지정하려면 다음을 수행하십시오.
Begin Queue
QUEUE_NAME = dockerqoptions
CONTAINER = docker[image(repository.example.com:5000/file/path/ubuntu:latest) options(@/share/usr/docker-options.sh)
container_io() job_pre_post()]
DESCRIPTION = Docker User Service with pre-execution script for options
End Queue
Begin Queue
QUEUE_NAME = ndockerqoptions
CONTAINER = nvidia-docker[image(repository.example.com:5000/file/path/ubuntu:latest) options(@/share/usr/ndocker-options.sh)]
DESCRIPTION = NVIDIA Docker User Service with pre-execution script for options
End Queue
Begin Queue
QUEUE_NAME = shifterqoptions
CONTAINER = shifter[image(ubuntu:latest) options(@/share/usr/shifter-options.sh)]
DESCRIPTION = Shifter User Service
End Queue
Begin Queue
QUEUE_NAME = singqoptions
CONTAINER = singularity[image(/file/path/ubuntu.img) options(@/share/usr/sing-options.sh)]
DESCRIPTION = Singularity User Service
End Queue
Begin Queue
QUEUE_NAME = apptainerq
CONTAINER = apptainer[image(/share/apptainer/images/ubuntu_latest.sif) options(@/share/usr/apptainer-options.sh)]
DESCRIPTION = Apptainer User Service
End Queue
Begin Queue
QUEUE_NAME = podmanqoptions
CONTAINER = podman[image(repository.example.com:5000/file/path/ubuntu:latest) options(@/share/usr/podman-options.sh)]
DESCRIPTION = Podman User Service with pre-execution script for options
End Queue
Begin Queue
QUEUE_NAME = dockerqoptions
CONTAINER = docker[image(repository.example.com:5000/file/path/ubuntu:latest) options(@/share/usr/podman-options.sh)
container_io() job_pre_post()]
DESCRIPTION = Docker User Service with pre-execution script for options
End Queue
Begin Queue
QUEUE_NAME = enrootqoptions
CONTAINER = enroot[image(repository.example.com:5000/file/path/ubuntu:latest) options(@/share/usr/enroot-options.sh)]
DESCRIPTION = Enroot User Service with pre-execution script for options
End Queue
  • 순차 작업의 경우 작업이 완료된 후 컨테이너를 자동으로 제거하려면 LSF 에 대해 다음 CONTAINER 매개변수 값을 지정하십시오.

    CONTAINER = docker[image(image-name) options(--rm)]

  • 병렬 작업의 경우 blaunch 가 작동하려면 네트워크 및 IPC가 컨테이너 전체에서 작동해야 합니다. 실행 사용자 ID및 사용자 이름 맵핑 파일은 blaunch 인증을 위해 컨테이너에 마운트되어야 합니다.

    따라서 LSF 에 대해 다음 CONTAINER 매개변수 값을 지정하여 blaunch 가 여러 컨테이너에서 작동할 수 있도록 컨테이너 IPC및 네트워크 매개변수를 구성하고, blaunch 인증을 위한 컨테이너 비밀번호 파일을 구성하고, 작업이 완료된 후 컨테이너를 자동으로 제거하십시오.

    CONTAINER=docker[image(image-name) options(--rm --network=host --ipc=host -v /path/to/my/passwd:/etc/passwd)]

    passwd 파일은 다음 형식과 같은 UNIX및 Linux 비밀번호 파일의 표준 형식이어야 합니다.

    user1:x:10001:10001:::
    user2:x:10002:10002:::
  • 사용자가 Podman, Docker, NVIDIA 및 Enroot 컨테이너 작업에 대한 이미지 이름을 작업 제출 시 지정할 수 있도록 하려면, image 키워드를 지정할 때 이미지 이름으로 환경 변수 $LSB_CONTAINER_IMAGE 를 사용하십시오.
    예를 들어, udockerGPU 큐에 대한 CONTAINER 매개변수를 정의할 때 이미지 스펙에 $LSB_CONTAINER_IMAGE 환경 변수를 추가하십시오.
    Begin Queue
    QUEUE_NAME = udockerGPU
    CONTAINER = docker[image(repository.example.com:5000/$LSB_CONTAINER_IMAGE) \
                options(--rm --net=host --ipc=host  -v --runtime=nvidia /gpfs/u/fred:/data )
                container_io() job_pre_post()]
    DESCRIPTION = Docker User Service
    End Queue
    다음 방법 중 하나를 사용하여 $LSB_CONTAINER_IMAGE 환경을 설정하여 작업 제출 시 컨테이너 이미지 이름 (예: ubuntu) 을 지정하십시오.
    • 쉘 환경에 따라 $LSB_CONTAINER_IMAGE 환경 변수를 지정하십시오.
      • csh 또는 tcsh의 경우:

        setenv LSB_CONTAINER_IMAGE ubuntu

      • sh, ksh또는 bash에서:

        export LSB_CONTAINER_IMAGE=ubuntu

    • bsub -env 옵션을 사용하십시오.

      bsub -env LSB_CONTAINER_IMAGE=ubuntu -q udocker a.out -in in.dat -out out.dat

    • esub 스크립트를 사용하여 LSB_CONTAINER_IMAGE 환경 변수를 설정한 후 bsub 명령으로 esub 를 호출하십시오.
      예를 들어, 다음 컨텐츠를 사용하여 $LSF_SERVERDIR 디렉토리에 esub.docker 스크립트를 작성하십시오.
      #!/bin/sh
      exec 1>&2
      echo "LSB_CONTAINER_IMAGE=∖"$1∖"" >> $LSB_SUB_MODIFY_ENVFILE
      다음 명령을 실행하여 esub.docker 스크립트를 호출하는 작업을 제출하십시오.
      bsub -a "docker(ubuntu)" -q dockerq a.out -in in.dat -out out.dat

기본값

정의되지 않음

코어한계

이 큐의 모든 작업 프로세스에 대한 프로세스당 코어 파일 크기 한계를 지정합니다.

구문

CORELIMIT=정수

설명

이 큐의 작업에 속하는 모든 프로세스에 대해 프로세스당 하드 코어 파일 크기 한계 (KB) 를 지정하려면 이 매개변수를 지정하십시오 ( getrlimit(2) 참조).

기본값

무제한

CPU 빈도

큐의 CPU 빈도를 지정합니다.

구문

CPU_FREQUENCY=[float_number] [단위]

설명

큐에 제출되는 모든 작업에는 지정된 CPU 빈도가 필요합니다. 값은 단위 (GHz, MHz 또는 KHz) 가 있는 양의 부동 소수점 수입니다. 단위가 설정되지 않은 경우 기본값은 GHz입니다.

bsub -freq 를 사용하여 이 값을 설정할 수도 있습니다.

제출 값은 애플리케이션 프로파일 값을 겹쳐쓰고 애플리케이션 프로파일 값은 큐 값을 겹쳐씁니다.

기본값

정의되지 않음 (명목 CPU 빈도가 사용됨)

CPULIMIT

이 큐에서 실행되는 모든 작업 프로세스에 허용되는 최대 정규화된 CPU 시간 및 선택적으로 기본 정규화된 CPU 시간을 지정합니다. 호스트 또는 호스트 모델의 이름은 사용할 CPU 시간 정규화 호스트를 지정합니다.

구문

CPULIMIT=[기본_한도 ] 최대_한도

여기서 default_limitmaximum_limit 는 다음 공식으로 정의됩니다.

[시간:][/host_name |/host_model]

설명

작업이 사용할 수 있는 총 CPU 시간을 제한합니다. 이 매개변수는 너무 많은 자원을 사용하는 런어웨이 작업 또는 작업을 방지하는 데 유용합니다.

전체 작업의 총 CPU 시간이 한계에 도달하면 SIGXCPU 신호가 작업에 속하는 모든 프로세스로 전송됩니다. 작업에 SIGXCPU에 대한 신호 핸들러가 없는 경우 작업이 즉시 kill됩니다. SIGXCPU 신호가 애플리케이션에 의해 처리, 차단 또는 무시되는 경우, 유예 기간이 만료된 후 LSF는 SIGINT, SIGTERMSIGKILL 을 작업에 전송하여 강제 종료합니다.

작업이 프로세스를 동적으로 작성하는 경우 이러한 프로세스에서 사용하는 CPU 시간은 작업의 수명 동안 누적됩니다.

30초미만 동안 존재하는 프로세스는 무시할 수 있습니다.

기본적으로 기본 CPU 한계가 지정되면 기본 CPU 한계에 도달할 때 작업 레벨 CPU 한계 없이 큐에 제출된 작업이 강제 종료됩니다.

하나의 한계만 지정하는 경우 최대 또는 하드 CPU 한계입니다. 두 개의 한계를 지정하는 경우 첫 번째 한계는 기본 또는 소프트 CPU 한계이고 두 번째 한계는 최대 CPU 한계입니다.

호스트 또는 호스트 모델에 CPU 시간이 지정되지 않은 경우 LSF는 큐 레벨 ( lsb.queues의 DEFAULT_HOST_SPEC) 에 정의된 기본 CPU 시간 정규화 호스트를 사용합니다 (구성된 경우). 그렇지 않으면 클러스터 레벨 ( lsb.params의 경우 DEFAULT_HOST_SPEC) 에 정의된 기본 CPU 시간 정규화 호스트가 사용됩니다 (구성된 경우). 그렇지 않으면 CPU 요인이 가장 큰 호스트 (클러스터에서 가장 빠른 호스트) 가 사용됩니다.

sbatchd 는 CPU 시간 한계가 초과되었는지 여부를 주기적으로 확인하므로, CPU 시간 한계 아래에서 실행되는 Windows 작업은 최대 SBD_SLEEP_TIME까지 해당 한계를 초과할 수 있습니다.

UNIX 시스템에서 CPU 한계는 프로세스 레벨에서 운영 체제에 의해 강제 실행될 수 있습니다.

CPU 한계가 OS에 의해 강제 실행되는 프로세스당 한계인지 또는 lsf.conf에서 LSB_JOB_CPULIMIT를 사용하여 LSF에 의해 강제 실행되는 작업당 한계인지 여부를 정의할 수 있습니다.

CPULIMIT가 30분보다 큰 경우 청크 작업 큐에 제출된 작업은 청크되지 않습니다.

기본값

무제한

CPU 시간 요인

CPU 시간 가중치 요인을 지정합니다. 적정 공유 스케줄링에서만 사용됩니다.

구문

CPU_TIME_FACTOR=번호

설명

사용자 동적 공유 우선순위의 계산에서 이 요소는 사용자의 작업에서 사용되는 누적 CPU 시간의 상대적 중요도를 판별합니다.

정의되지 않은 경우 동일한 이름의 lsb.params 매개변수에서 클러스터 전체 값이 사용됩니다.

기본값

0.7

CSM_REQ

CSM bsub 작업 제출 옵션에 대한 필수 값을 지정합니다. 이 설정은 작업 레벨 CSM 옵션을 대체하고 시스템 레벨 할당 플래그를 작업 레벨 할당 플래그에 추가합니다.

구문

CSM_REQ= [jsm=y | n | d] [:step_cgroup=y | n] [: [core_isolation 0 | 1 | 2 | 3 | 4 | 5 | 6] [:cn_mem=mem_value]] [:alloc_flags "flag1 [flag2 ...] [:smt=smt_value]"]

설명

여러 CSM 작업 옵션을 구분하려면 콜론 (:) 을 사용하십시오. 옵션은 임의의 순서로 표시될 수 있으며 아무 것도 필요하지 않습니다. alloc_flags 키워드에 대해 플래그의 영숫자 문자열을 지정하고 공백으로 여러 플래그를 구분하십시오. 문자열은 콜론 (:) 을 포함할 수 없습니다.

CSM_REQ=jsm=n:step_cgroup=y:core_isolation 3:cn_mem=1024

기본값

정의되지 않음.

dataLimit

이 큐의 모든 작업 프로세스에 대한 프로세스당 데이터 세그먼트 크기 한계를 지정합니다.

구문

DATALIMIT=[기본_제한 ] 최대_제한

설명

이 큐의 작업에 속하는 모든 프로세스에 대해 프로세스당 데이터 세그먼트 크기 한계 (KB) 를 지정하려면 이 매개변수를 설정하십시오 ( getrlimit(2) 참조).

기본적으로 기본 데이터 한계가 지정되면 기본 데이터 한계에 도달할 때 작업 레벨 데이터 한계 없이 큐에 제출된 작업이 강제 종료됩니다.

하나의 한계만 지정하는 경우 최대 또는 하드 데이터 한계입니다. 두 개의 한계를 지정하는 경우 첫 번째 한계는 기본 또는 소프트 데이터 한계이고 두 번째 한계는 최대 데이터 한계입니다.

기본값

무제한

데이터 전송

큐를 LSF 데이터 관리자의 데이터 전송 큐로 구성합니다.

구문

DATA_TRANSFER=Y | N

설명

DATA_TRANSFER=Y 매개변수는 LSF 데이터 관리자를 통한 데이터 전송을 위해 큐를 사용으로 설정합니다.

클러스터에 있는 하나의 큐만 데이터 전송 큐가 될 수 있습니다. 데이터 관리자가 제출하는 전송 작업은 이 큐로 이동합니다. lsf.datamanager 파일이 있는 경우 하나 이상의 큐가 DATA_TRANSFER 매개변수를 정의해야 합니다. 이 매개변수가 설정되면 해당 lsf.datamanager 파일이 존재해야 합니다.

bsub 를 통해 이 큐에 제출되는 일반 작업은 거부됩니다.

bstop, bresumebkill 명령을 사용하여 데이터 전송 큐에서 사용자 고유의 전송 작업을 중지, 재개 및 강제 종료할 수 있습니다. LSF 관리자 및 큐 관리자는 btopbbot 명령을 추가로 사용하여 큐에서 전송 작업을 이동할 수 있습니다. 데이터 전송 큐에 있는 작업의 다른 모든 명령은 거부됩니다. bswitch 명령을 사용하여 작업을 다른 큐에서 데이터 전송 큐로 전환할 수 없습니다.

이 매개변수를 변경하면 이전 큐에 있던 LSF 데이터 관리자 전송 작업이 해당 큐에 남아 있으며 정상적으로 스케줄되어 실행됩니다. LSF 데이터 관리자에게 성공 또는 실패를 알립니다.

다음 큐 매개변수는 DATA_TRANSFER 매개변수를 정의하는 큐와 함께 사용할 수 없습니다.
  • INTERACTIVE=전용
  • RCVJOBS_FROM
  • 최대 스케줄된 시간
  • 성공_출구_값
  • 다시 실행 가능

데이터 전송 큐는 lsb.params 파일의 DEFAULT_QUEUE 매개변수에 의해 정의되는 기본 큐의 목록에 표시될 수 없습니다. 데이터 전송 큐에 제출된 작업은 lsb.params 파일에서 DEFAULT_APPLICATION 매개변수로 지정된 애플리케이션에 첨부되지 않습니다.

기본값

N

기본 EXTSCHED

큐에 대한 기본 외부 스케줄링 옵션을 지정합니다.

구문

DEFAULT_EXTSCHED=외부 스케줄러 옵션

설명

bsub 명령의 -extsched 옵션은 DEFAULT_EXTSCHED 옵션과 병합되고 -extsched 옵션은 DEFAULT_EXTSCHED에 의해 설정된 충돌하는 큐 레벨 옵션을 대체합니다.

기본값

정의되지 않음

기본 호스트 스펙

큐에 대한 기본 CPU 시간 정규화 호스트를 지정합니다.

구문

DEFAULT_HOST_SPEC=host_name | 호스트 모델

설명

지정된 호스트 또는 호스트 모델의 CPU 요소는 CPU 시간 정규화 호스트가 작업 레벨에서 지정되지 않은 경우 큐에 있는 모든 작업의 CPU 시간 한계를 정규화하는 데 사용됩니다.

기본값

정의되지 않음. 큐는 lsb.params에 정의된 DEFAULT_HOST_SPEC를 사용합니다. 두 파일 모두에서 DEFAULT_HOST_SPEC이 정의되지 않은 경우, LSF는 클러스터 내 가장 빠른 정적 서버 호스트를 사용합니다.

설명

bqueues -l에 의해 표시되는 작업 큐의 설명을 지정합니다.

구문

DESCRIPTION=텍스트

설명

사용자가 각 작업에 적합한 큐를 선택하는 데 도움이 되도록 이 큐의 서비스 기능을 명확하게 설명하는 설명을 사용하십시오.

텍스트에는 공백을 포함하여 모든 문자가 포함될 수 있습니다. 앞의 줄을 백슬래시(()로 끝내면 텍스트를 여러 줄로 확장할 수 있습니다.\ ). 텍스트의 최대 길이는 512자입니다.

DISPATCH_BY_QUEUE (더 이상 사용되지 않음)

이 매개변수는 LSF 버전 10.1 수정팩 10에서 더 이상 사용되지 않으며 lsb.params 파일의 JOB_DISPATCH_PACK_SIZE 매개변수로 대체됩니다.

구문

DISPATCH_BY_QUEUE=Y|y|N|n

설명

전체 스케줄링 세션이 완료될 때까지 기다리지 않고 지정된 큐에 대한 스케줄링 의사결정을 공개할 수 있습니다.

큐 응답성을 늘리려면 이 매개변수를 설정하십시오. 지정된 큐의 작업에 대한 스케줄링 결정은 최종적이며 이러한 작업은 동일한 스케줄링 주기 내에서 선점될 수 없습니다.

팁: 이 큐의 응답성이 가장 높은지 확인하려면 우선순위가 가장 높은 큐 (예: 대화식 큐) 에 대해서만 이 매개변수를 설정하십시오.

기본값

N

연결 끊기 주문

작업이 큐 우선순위 순서에 따라 먼저 디스패치된 후 사용자 적정 공유 우선순위에 따라 디스패치됨을 표시하는 정렬된 교차 큐 적정 공유 세트를 정의합니다.

구문

DISPATCH_ORDER=QUEUE

설명

기본적으로 사용자는 상위하위 큐에서 동일한 우선순위를 갖습니다. 동일한 사용자가 이러한 큐에 여러 작업을 제출하는 경우 사용자가 상위-하위 세트에서 제출하는 모든 작업을 고려하여 사용자 우선순위를 계산합니다.

DISPATCH_ORDER=QUEUE가 상위 대기열에 설정된 경우, 작업은 대기열 우선순위에 따라 먼저 디스패치된 후 사용자 우선순위에 따라 디스패치됩니다. 높은 우선순위 큐에 보류 중인 작업이 있는 낮은 적정 공유 우선순위를 가진 사용자의 작업은 낮은 우선순위 큐에 있는 작업보다 먼저 디스패치됩니다. 이 동작은 높은 적정 공유 우선순위를 갖는 사용자가 낮은 우선순위 큐에서 디스패치되는 작업을 가져오지 못하게 합니다.

우선순위가 동일한 큐의 작업은 사용자 우선순위에 따라 디스패치됩니다.

교차 큐 적정 공유의 일부가 아닌 큐는 임의의 우선순위를 가질 수 있습니다. 이 큐는 교차 큐 적정 공유 큐의 우선순위 범위를 벗어나도록 제한되지 않습니다.

기본값

정의되지 않음

디스패치 창

이 큐의 작업이 디스패치되는 시간 창을 지정합니다. 작업이 디스패치된 후에는 더 이상 디스패치 창의 영향을 받지 않습니다.

구문

DISPATCH_WINDOW=tIME_WINDOW...

설명

이 큐의 작업은 디스패치 창 외부에서 디스패치되지 않습니다.

기본값

정의되지 않음. 디스패치 창은 항상 열려 있습니다.

도크_이미지 연관관계

구문

DOCKER_IMAGE_AFFINITY=Y | y | N | n

설명

Docker기반 컨테이너화된 작업을 스케줄링할 때 이 매개변수를 y 또는 Y 로 설정하면 LSF 가 이미 요청된 Docker 이미지가 있는 실행 호스트에 대한 환경 설정을 제공할 수 있습니다. 이렇게 하면 실행 호스트가 저장소에서 Docker 이미지를 가져올 필요가 없고 작업이 실행 호스트에서 즉시 시작할 수 있으므로 네트워크 대역폭 및 작업 시작 시간이 줄어듭니다.

이 기능이 사용으로 설정되면 LSF 는 Docker 작업을 스케줄링할 때 Docker 이미지 위치 정보를 고려합니다. Docker 이미지 선호도는 다음 방식으로 호스트 환경 설정 및 order[] 문자열 요청과 상호작용합니다.

  • 호스트 환경 설정이 지정되면 호스트 환경 설정이 먼저 적용됩니다. 환경 설정 레벨이 동일한 호스트 중에서 요청된 Docker 이미지가 있는 호스트에는 더 높은 우선순위가 지정됩니다.
  • order[] 문자열이 지정되면 요청된 Docker 이미지가 있는 호스트의 우선순위가 먼저 높아집니다. 모든 호스트에 요청된 Docker 이미지가 있는 경우 order[] 문자열이 적용됩니다.

이 큐에 대해 작업하려면 이 매개변수에 대해 CONTAINER 매개변수를 정의해야 합니다.

기본값

정의되지 않음.

허용되지 않은 시간 한계

작업에 대해 적합한 보류 시간 한계를 지정합니다.

구문

ELIGIBLE_PEND_TIME_LIMIT=[hour:]

설명

LSF는 큐 레벨의 적합한 보류 시간 제한 구성을 IBM® Spectrum LSF RTM (LSF RTM) 에 전송합니다. 이는 사용자 알림 (예: 작업을 제출한 사용자 및 LSF 관리자에게 알림) 및 작업 제어 조치 (예: 작업 강제 종료) 와 같은 알람 및 트리거된 조치를 처리합니다. LSF RTM 는 작업의 적합한 보류 시간을 적합한 보류 시간 한계와 비교하고, 작업이 이 지정된 시간 한계보다 오랫동안 적합한 보류 상태에 있는 경우 LSF RTM 는 알람 및 조치를 트리거합니다. 이 매개변수는 LSF RTM없이 작동하지만 LSF는 다른 알람 조치를 수행하지 않습니다.

다중 클러스터 작업 전달 모드에서 작업의 적합한 보류 시간 한계는 실행 클러스터에서 무시되는 반면, 제출 클러스터는 로컬 설정에 따라 작업의 큐, 애플리케이션 및 작업 레벨 적합한 보류 시간 한계를 병합합니다.

적합한 보류 시간 한계의 양식은 [hour:]minute입니다. 분은 59보다 큰 숫자로 지정할 수 있습니다. 예를 들어, 3시간 반은 3:30또는 210으로 지정할 수 있습니다.

작업 레벨 적합 보류 시간 한계 (bsub -eptl) 는 애플리케이션 레벨 한계 ( lsb.applicationsELIGIBLE_PEND_TIME_LIMIT ) 를 대체하고 애플리케이션 레벨 한계는 여기에 지정된 큐 레벨 한계를 대체합니다.

기본값

정의되지 않음.

ENABLE_GPU_HIST_RUN_TIME

적정 공유 스케줄링 우선순위의 계산에서 히스토리 GPU 런타임을 사용할 수 있습니다. 적정 공유 스케줄링에서만 사용됩니다.

구문

ENABLE_GPU_HIST_RUN_TIME=y | Y | n | N

설명

Y로 설정하면 적정 공유 스케줄링 우선순위의 계산에서 히스토리 GPU 런타임을 사용할 수 있습니다.

정의되지 않은 경우 동일한 이름의 lsb.params 매개변수에서 클러스터 전체 값이 사용됩니다.

기본값

정의되지 않음.

히스토리 실행 시간 사용

적정 공유 스케줄링 우선순위를 계산하는 데 히스토리 런타임을 사용할 수 있습니다. 적정 공유 스케줄링에서만 사용됩니다.

구문

ENABLE_HIST_RUN_TIME=y | Y | n | N

설명

Y로 설정하면 적정 공유 스케줄링 우선순위의 계산에서 히스토리 런타임을 사용할 수 있습니다.

정의되지 않은 경우 동일한 이름의 lsb.params 매개변수에서 클러스터 전체 값이 사용됩니다.

기본값

정의되지 않음.

ESTIMATED_RUNTIME

구문

ESTIMATED_RUNTIME=[hour:][/host_name | /host_model]

설명

이 매개변수는 큐와 연관된 작업의 예상 런타임을 지정합니다. LSF는 스케줄링 목적으로만 ESTIMATED_RUNTIME값을 사용하며 작업이 정의된 RUNLIMIT도 초과하지 않는 한 이 값을 초과하는 작업을 강제 종료하지 않습니다. 런타임 예상의 형식은 RUNLIMIT 매개변수와 동일합니다.

애플리케이션의 bsub -We 또는 ESTIMATED_RUNTIME 설정으로 지정된 작업 레벨 런타임 추정은 큐의 ESTIMATED_RUNTIME 설정을 겹쳐씁니다. 큐의 ESTIMATED_RUNTIME 설정은 클러스터 전체 ESTIMATED_RUNTIME 설정을 대체합니다.

다음 LSF 기능은 ESTIMATED_RUNTIME값을 사용하여 작업을 스케줄합니다.
  • 작업 청크
  • 고급 예약
  • SLA
  • 슬롯 예약
  • 다시 채우기
  • 할당 계획표

기본값

정의되지 않음

EXCLUSIVE

독점 큐 및 계산 단위 유형을 지정합니다.

구문

EXCLUSIVE=Y | N | CU[cu_type ]

설명

Y로 설정된 경우 독점 큐를 지정합니다.

CU, CU [] 또는 CU [cu_type] 로 설정된 경우, 배타적 큐 및 cu_type 유형의 계산 단위에 배타적인 큐 ( lsb.params에 정의된 대로) 를 지정합니다. 유형을 지정하지 않으면 기본 계산 단위 유형이 사용됩니다.

bsub -x 를 사용하여 독점 큐에 제출된 작업은 실행 중인 다른 작업이 없는 호스트에만 디스패치됩니다. bsub -R "cu[excl]" 를 사용하여 계산 단위 독점 큐에 제출된 작업은 실행 중인 다른 작업이 없는 계산 단위에서만 실행됩니다.

다중 클러스터 자원 리스 모델에서 공유되는 호스트의 경우, 작업이 다른 클러스터의 작업인 경우에도 실행 중인 작업이 있는 호스트로 작업이 디스패치되지 않습니다.

주: alljobs 범위가 affinity [] 자원 요구사항 문자열의 exclusive 옵션에 지정되어 있는 경우, EXCLUSIVE=Y 또는 EXCLUSIVE=CU [cu_type] 가 CPU를 독점적으로 사용하도록 구성되어야 합니다.

기본값

N

실행 드라이버

구문

Podman 작업: EXEC_DRIVER=context[user(user_name)] starter[/file_path_serverdir/podman-starter.py] controller[/file_path/to/serverdir/podman-control.py] monitor[/file_path/to/serverdir/podman-monitor.py]

Docker 작업: EXEC_DRIVER=context[user(user_name path(/path/path1:/path/path2)] starter[/file_path_serverdir/docker-starter.py] controller[/file_path/to/serverdir/docker-control.py] monitor[/file_path/to/serverdir/docker-monitor.py]

작업 내재화: EXEC_DRIVER=starter[/file_path_serverdir/enroot-starter.py]

file_path/to/serverdirLSF_SERVERDIR 디렉토리의 실제 파일 경로로 바꾸십시오.

설명

Enroot 작업의 경우 선택사항입니다. 이 큐에 있는 Podman 또는 Docker 컨테이너 작업에 대한 실행 드라이버 프레임워크를 지정합니다. 이 매개변수는 다음 키워드를 사용합니다.

USER
Docker 작업의 경우 선택적 이며 Enroot 작업의 경우 무시됩니다. 이 키워드는 스크립트를 시작하기 위한 사용자 계정을 지정합니다. 구성된 값은 사용자 ID가 아닌 사용자 이름입니다. Docker 작업의 경우 이 사용자는 Docker 사용자 그룹의 구성원이어야 합니다. Podman 작업의 경우 사용자 이름을 "default" 으로 설정해야 합니다.

기본적으로 이는 LSF 기본 관리자입니다.

주: 이 사용자는 루트 사용자가 될 수 없습니다.

LSF 에는 작업을 시작하고 (docker-starter.py), 작업의 자원을 모니터하고 (docker-monitor.py), 작업에 신호를 보내는 (docker-control.py) 데 사용되는 세 개의 실행 드라이버 스크립트가 포함되어 있습니다. 이 스크립트는 LSF_SERVERDIR 디렉토리에 있습니다. EXEC_DRIVER 매개변수에서 사용하기 전에 스크립트 파일의 소유자를 컨텍스트 사용자로 변경하고 파일 권한을 700또는 500으로 변경하십시오.

스타터 스크립트는 필수입니다. Docker 컨테이너 작업의 경우 cgroupfs 드라이버가 systemd인 경우 모니터 및 제어 스크립트가 필요하지만 cgroupfs 드라이버가 cgroupfs인 경우에는 선택사항입니다. Podman 컨테이너 작업의 경우 모니터 스크립트는 선택적이지만 제어 스크립트는 필수입니다. Enroot 컨테이너 작업의 경우 스타터 스크립트가 필요하지만 다른 모든 스크립트는 무시됩니다.

Podman, Docker또는 Enroot 작업에 대한 CONTAINER 매개변수와의 상호작용

Podman, Docker 또는 Enroot 작업의 경우, EXEC_DRIVER 매개변수는 CONTAINER 매개변수에서 다음 키워드와 상호 작용합니다

  • 스크립트 이름을 지정할 때 이미지 이름 ($LSB_CONTAINER_IMAGE 환경 변수) 을 지정하는 image가 지원됩니다.
  • 런타임 옵션이 있는 options 및 옵션 스크립트가 지원됩니다.

Begin Queue
QUEUE_NAME = podmanq
CONTAINER = podman[image(repository.example.com:5000/file/path/ubuntu:latest)
            options(--rm --network=host --ipc=host -v /path/to/my/passwd:/etc/passwd)]
EXEC_DRIVER = context[user(default)] starter[/path/to/driver/podman-starter.py]
              controller[/path/to/driver/podman-control.py]
              monitor[/path/to/driver/podman-monitor.py]
DESCRIPTION = Podman User Service
End Queue
Begin Queue
QUEUE_NAME = dockerq
CONTAINER = docker[image(repository.example.com:5000/file/path/ubuntu:latest)
            options(--rm --network=host --ipc=host -v /path/to/my/passwd:/etc/passwd)
            container_io() job_pre_post()]
EXEC_DRIVER = context[user(user-name) path(/path/one:/path/two)] starter[/path/to/driver/docker-starter.py]
              controller[/path/to/driver/docker-control.py]
              monitor[/path/to/driver/docker-monitor.py]
DESCRIPTION = Docker User Service
End Queue
Begin Queue
QUEUE_NAME = enrootq
CONTAINER = enroot[image(repository.example.com:5000/file/path/ubuntu:latest)
            options(--mount /mydir:/mydir2]
EXEC_DRIVER = starter[/path/to/driver/enroot-starter.py]
DESCRIPTION = Enroot User Service
End Queue

기본값

Podman 및 Docker 작업에 대해 정의되지 않은 입니다.

Enroot 작업의 경우 starter[$LSF_SERVERDIR/enroot-starter.py]

확장 가능 실행 한계

이 작업이 차지하는 자원이 동일하거나 높은 우선순위의 큐에 있는 다른 작업에 필요하지 않은 경우 LSF 할당 플래너가 소프트 실행 한계를 변경하여 작업의 실행 한계를 확장할 수 있습니다. 소프트 실행 한계는 확장할 수 있지만 하드 실행 한계는 확장할 수 없습니다. 할당 플래너는 다른 작업의 작업 계획을 보고 이 작업의 자원이 필요한 다른 작업이 있는지 판별합니다.

구문

EXTENDABLE_RUNLIMIT=BASE[minutes] INCREMENT[minutes] GRACE[minutes] REQUEUE[Y|N]

설명

구성된 경우 이 매개변수는 큐에 있는 계획이 있는 작업에 확장 가능한 실행 한계 정책을 적용합니다. 계획이 있는 작업이 디스패치되면 LSF 는 작업에 대한 초기 소프트 실행 한계를 설정합니다. 작업이 소프트 실행 한계에 도달할 때마다 LSF 는 다른 작업에 자원에 대한 계획된 할당이 있는지 여부를 고려합니다. 그렇지 않으면 LSF 는 작업의 소프트 실행 한계를 확장합니다. 그렇지 않으면 LSF 가 작업에 대한 하드 실행 한계를 설정합니다. 작업이 하드 실행 한계에 도달할 때마다 LSF 는 작업을 종료하거나 다시 요청합니다.

이 매개변수는 다음 키워드를 사용합니다.

BASE[]
큐의 작업에 부과되는 초기 소프트 실행 한계입니다. 작업이 소프트 실행 한계에 도달할 때마다 할당 플래너는 다른 작업에 대한 계획을 검토하여 작업이 보류하는 자원이 큐의 다른 작업에 필요한지 여부를 고려합니다. 자원이 필요하지 않은 경우 LSF 는 작업에 대한 소프트 실행 한계를 확장합니다. 그렇지 않으면 LSF 가 하드 실행 한계를 설정합니다.

초기 소프트 실행 한계에 대한 정수 값을 지정하십시오.

INCREMENT[]
선택사항. LSF 가 작업에 대한 소프트 실행 한계를 확장하기로 결정하는 경우 이 키워드는 LSF 가 소프트 실행 한계를 확장하는 시간을 지정합니다.

소프트 실행 한계 확장 시간에 대한 정수 값을 지정하십시오. 기본값은 BASE[] 키워드의 값입니다.

GRACE[]
선택사항. LSF 가 작업에 대한 소프트 실행 한계를 확장하지 않기로 결정하는 경우, 결정한 시간부터 이 시간 (분) 동안 하드 실행 한계가 설정됩니다.

기본값은 0 (작업이 종료되거나 즉시 다시 큐에 넣음) 입니다.

REQUEUE[Y | N]
선택사항. 작업이 하드 실행 한계에 도달할 때 LSF 가 수행하는 조치를 지정합니다. N로 설정되면 LSF 가 작업을 종료합니다. Y LSF 로 설정되면 작업을 다시 큐에 넣습니다.

기본값은 N (작업이 하드 실행 한계에 도달하면LSF 가 작업을 종결함) 입니다.

기본값

정의되지 않음.

지정된 실행 한계 시간 ( RUNLIMIT 매개변수 또는 -W 옵션으로 지정됨) 에 도달하는 작업은 체크포인트된 후 (체크포인트 가능한 경우) 자원이 사용 가능한지 여부에 관계없이 종료됩니다.

페어공유

큐 레벨 사용자 기반 적정 공유를 사용으로 설정하고 공유 지정을 지정합니다.

구문

FAIRSHARE=USER_SHARES[[사용자, number_shares] ...]
  • 하나 이상의 사용자 공유 지정을 지정하십시오.
  • 표시된 대로 목록을 대괄호로 묶으십시오.
  • 표시된 대로 각 사용자 공유 지정을 대괄호로 묶으십시오.
  • user: 큐를 사용하도록 구성된 사용자를 지정합니다. 다음 유형의 사용자에게 공유를 지정할 수 있습니다.
    • 단일 사용자 ( user_name지정). Windows 사용자 계정을 지정하려면 도메인 이름을 대문자( 도메인 이름 \ 사용자 이름 ).
    • 그룹의 사용자는 개별적으로 ( group_name@ 지정) 또는 집합적으로 ( group_name지정). Windows 사용자 그룹을 지정하려면 도메인 이름을 대문자( 도메인 이름 \ 그룹 이름 .
    • 다른 공유 지정에 포함되지 않은 사용자는 개별적으로 (키워드 default지정) 또는 집합적으로 (키워드 others지정). 기본적으로 자원이 그룹에 집합적으로 지정되면 그룹 멤버는 선착순 (FCFS) 기준으로 자원에 대해 경쟁합니다. 계층 구조 적정 공유를 사용하여 그룹 구성원 간에 공유를 추가로 나눌 수 있습니다.

      자원이 개별적으로 그룹의 구성원에 지정되면 공유 지정이 반복됩니다. 그룹 및 모든 하위 그룹의 멤버는 계층 구조 적정 공유 정책에 관계없이 항상 FCFS 스케줄링에 따라 자원에 대해 경쟁합니다.

  • 숫자_공유
    • 사용자에게 지정된 클러스터 자원의 공유 수를 나타내는 양의 정수를 지정하십시오.
    • 각 사용자에게 지정된 공유 수는 다른 사용자에게 지정된 공유 또는 총 공유 수와 비교할 때에만 의미가 있습니다. 총 공유 수는 각 공유 지정에 지정된 모든 공유의 합계입니다.

설명

큐 레벨 사용자 기반 적정 공유를 사용으로 설정하고 선택적 공유 지정을 지정합니다. 공유 지정이 지정되면 공유 지정이 있는 사용자만 큐에 작업을 제출할 수 있습니다.

호환성

큐 및 호스트 레벨 모두에서 적정 공유를 사용하도록 클러스터의 호스트를 구성하지 마십시오. 그러나 사용자 기반 적정 공유 및 큐 기반 적정 공유를 함께 구성할 수 있습니다.

기본값

정의되지 않음. 공평한 몫이 없습니다.

페어공유_조정_요인

적정 공유 조정 플러그인 가중치 요인을 지정합니다. 적정 공유 스케줄링에서만 사용됩니다.

구문

FAIRSHARE_ADJUSTMENT_FACTOR=번호

설명

사용자 동적 공유 우선순위의 계산에서 이 요인은 적정 공유 플러그인 (libfairshareadjust.*) 에서 수행되는 사용자 정의 조정의 상대적 중요도를 판별합니다.

양의 부동 소수는 보통 공유 플러그인을 사용 가능하게 하고 가중치 요인으로 작용합니다.

정의되지 않은 경우 동일한 이름의 lsb.params 매개변수에서 클러스터 전체 값이 사용됩니다.

기본값

정의되지 않음.

페어공유_큐

큐 간 적정 공유를 정의합니다.

구문

FAIRSHARE_QUEUES=대기열_이름 [대기열_이름...]]

설명

이 매개변수가 정의되면 다음을 수행하십시오.
  • 이 매개변수가 정의된 큐가 "관리가 됩니다.
  • 이 매개변수로 나열되는 큐는 하위 이며 상위 큐의 적정 공유 정책을 상속합니다.
  • 사용자는 상위하위 큐에서 동일한 우선순위를 갖습니다. 동일한 사용자가 이러한 큐에 여러 작업을 제출하는 경우 사용자가 상위-하위 세트에서 제출한 모든 작업을 고려하여 사용자 우선순위를 계산합니다.

참고

  • 기본적으로 교차 큐 적정 공유의 큐에 대해 정의된 PRIORITY 범위는 다른 큐와 함께 사용할 수 없습니다. 예를 들어, 네 개의 큐 ( queue1, queue2, queue3, queue4) 가 있습니다. 다음과 같은 교차 큐 적정 공유를 지정합니다. 우선순위
    • queue1 우선순위: 30
    • queue2 우선순위: 40
    • queue3 우선순위: 50
  • 기본적으로 queue4 의 우선순위 (교차 큐 적정 공유의 일부가 아님) 는 교차 큐 적정 공유 큐 (30-50) 의 우선순위 범위 사이에 있을 수 없습니다. 최대 29또는 50이상의 숫자일 수 있습니다. queue4 가 적정 공유 큐 또는 FCFS큐인지 여부는 중요하지 않습니다. DISPATCH_ORDER=QUEUE상위 큐에 설정된 경우, queue4 의 우선순위 (교차 큐 적정 공유의 일부가 아님) 는 교차 큐 적정 공유 큐의 우선순위 범위 (30-50) 사이에 있는 우선순위를 포함하여 임의의 숫자일 수 있습니다.
  • FAIRSHARE상위 큐에 정의되어야 합니다. FAIRSHARE_QUEUES에 나열된 큐에도 정의되어 있는 경우에는 무시됩니다.
  • 큐 간 적정 공유는 lsb.queues내에서 두 번 이상 정의할 수 있습니다. 여러 세트의 상위-하위 큐를 정의할 수 있습니다. 그러나 큐는 둘 이상의 상위-하위 세트에 속할 수 없습니다. 예를 들어, 다음을 정의할 수 있습니다.
    • 큐에서normal:FAIRSHARE_QUEUES=short
    • 큐에서priority:FAIRSHARE_QUEUES=night owners
      제한사항: 그러나 다음을 정의할 수는 없습니다.night,owners또는priority 큐의 하위normal및 또는normalshortchildren 로 표시됩니다.priority큐 또는short,night,owners상위 큐로 사용할 수 있습니다.
  • 교차 큐 적정 공유는 호스트 파티션 적정 공유와 함께 사용할 수 없습니다. 큐 레벨 적정 공유의 일부입니다.
  • 큐 간 적정 공유는 절대 우선순위 스케줄링과 함께 사용할 수 없습니다.

기본값

정의되지 않음

파일 한계

이 큐의 모든 작업 프로세스에 대한 프로세스당 파일 크기 한계를 지정합니다.

구문

FILELIMIT=정수

설명

이 큐의 작업에 속하는 모든 프로세스에 대해 프로세스당 하드 파일 크기 한계 (KB) 를 지정하려면 이 매개변수를 설정하십시오 ( getrlimit(2) 참조).

기본값

무제한

FWD_작업 FACTOR

전달된 작업 슬롯 가중치 요인입니다. 적정 공유 스케줄링에서만 사용됩니다.

구문

FWD_JOB_FACTOR=번호

설명

사용자의 동적 공유 우선순위를 계산할 때 이 요소는 LSF 멀티클러스터 기능을 사용할 때 사용자가 사용하고 예약된 전달된 작업 슬롯 수의 상대적 중요도를 판별합니다.

정의되지 않은 경우 동일한 이름의 lsb.params 매개변수에서 클러스터 전체 값이 사용됩니다.

기본값

정의되지 않음.

관련 참조

RUN_JOB_FACTOR

FWD_사용자

LSF 멀티클러스터 기능을 사용할 때 이 큐의 원격 클러스터로 작업을 전달할 수 있는 사용자 이름 또는 사용자 그룹의 공백으로 구분된 목록을 지정합니다.

구문

FWD_USERS=all [~user_name...] [~user_group...] | [user_name...] [user_group [~user_group...]...]

설명

사용자 그룹이 지정되면 그룹의 각 사용자가 이 큐의 원격 클러스터에 작업을 전달할 수 있습니다. 사용자 그룹을 지정할 때 로컬 사용자 그룹을 사용하십시오.

사용자 이름은 올바른 로그인 이름이어야 합니다. Windows 사용자 계정을 지정하려면 도메인 이름을 대문자( 도메인 이름 \ 사용자 이름 ).

사용자 그룹 이름은 LSF 사용자 그룹 또는 UNIX및 Windows 사용자 그룹일 수 있습니다. Windows 사용자 그룹을 지정하려면 도메인 이름을 대문자( 도메인 이름 \ user_group ).

클러스터의 모든 사용자 또는 사용자 그룹을 지정하려면 all 키워드를 사용하십시오.

all 스펙 또는 사용자 그룹에서 사용자를 제외하려면 not 연산자 (~) 를 사용하십시오. 이는 많은 수의 사용자가 있지만 큐 정의에서 소수의 사용자 또는 그룹만 제외하려는 경우에 유용합니다.

Not 연산자 (~) 는 all 키워드와 함께 사용하거나 사용자 그룹에서 사용자를 제외하는 경우에만 사용할 수 있습니다.

기본값

all (모든 사용자가 큐의 원격 클러스터에 작업을 전달할 수 있음)

  • FWD_USERS=user1 user2
  • FWD_USERS=all ~user1 ~user2
  • FWD_USERS=all ~ugroup1
  • FWD_USERS=groupA ~user3 ~user4

GPU_REQ

하나의 명령문으로 GPU 요구사항을 함께 지정하십시오.

구문

GPU_REQ = "[num= num_gpus [/task |host ] ] [:mode=shared |exclusive_process ] [:mps=yes [,shared ] [,nocvd ] |no |per_socket [,shared ] [,nocvd ] |per_gpu [,shared ] [,nocvd ] ] [:j_exclusive=yes |no ] [:gvendor=amd |nvidia ] [:gmodel= 모델명 [# mem_size ]] [:gtile= 타일_번호 |'!' ] [:gmem= 메모리_값 ] [:glink=yes ] [:aff=yes |no ] [:block=yes |no ] [:gpack=yes |no ]"

설명

GPU_REQ 매개변수는 다음 인수를 사용합니다.
숫자=num_gpus[/task | host]
작업에 필요한 실제 GPU 수입니다. 기본적으로 이 수는 호스트당입니다. 숫자 뒤에 /task 를 지정하여 태스크별 숫자를 지정할 수도 있습니다.

태스크당 수를 지정했거나 lsb.resources 파일의 ngpus_physical 자원 구성이 PER_TASK로 설정되었거나 RESOURCE_RESERVE_PER_TASK=Y 매개변수가 lsb.params 파일에 설정된 경우, 이 수는 태스크당 요청된 수입니다.

모드=공유 | 독점_프로세스
작업이 실행 중인 경우 GPU 모드이며 shared 또는 exclusive_process입니다. 기본 모드는 shared입니다.

공유 모드는 Nvidia 또는 AMD DEFAULT 계산 모드에 해당합니다. exclusive_process 모드는 Nvidia EXCLUSIVE_PROCESS 계산 모드에 해당합니다.

참고: AMD GPU를 사용하는 경우 (즉, gvendor=amd 가 지정된 경우) exclusive_process 를 지정하지 마십시오.
mps=yes[, nocvd][, shared] | per_socket[, shared][, nocvd] | per_gpu[, shared][, nocvd] | no
작업에 할당된 GPU에 대해 Nvidia MPS (Multi-Process Service) 를 사용 또는 사용 안함으로 설정합니다. MPS를 효과적으로 사용하면 EXCLUSIVE_PROCESS 모드가 모든 MPS 클라이언트에 대해 DEFAULT 모드처럼 작동합니다. MPS는 항상 여러 클라이언트가 MPS 서버를 통해 GPU를 사용하도록 허용합니다.
참고: 불일치 동작을 방지하려면 AMD GPU를 사용할 때 (즉, gvendor=amd 가 지정된 경우) mps 를 사용으로 설정하지 마십시오. 클러스터, 큐, 애플리케이션 및 작업 레벨에서 GPU 요구사항을 병합한 결과가 gvendor=amd 이고 mps 가 사용으로 설정된 경우 (예를 들어, gvendor=amdmps=no를 지정하지 않고 작업 레벨에서 지정되었지만 mps=yes 가 애플리케이션, 큐 또는 클러스터 레벨에서 지정된 경우), LSFmps 요구사항을 무시합니다.

MPS는 공유 및 독점 프로세스 GPU둘 다에 유용하며 GPU 리소스를 보다 효율적으로 공유하고 GPU 활용도를 높일 수 있습니다. 자세한 정보 및 제한사항은 Nvidia 문서를 참조하십시오.

MPS를 사용하는 경우 EXCLUSIVE_PROCESS 모드를 사용하여 단일 MPS 서버만 GPU를 사용하는지 확인하십시오. 이는 MPS 서버가 해당 GPU에 대한 모든 CUDA 프로세스 간의 단일 중재 지점이라는 추가 보험을 제공합니다.

공백 없이 쉼표로 share 키워드를 추가하여 MPS 디먼 공유를 사용으로 설정할 수도 있습니다. 예를 들어, mps=yes,shared 는 호스트에서 MPS 디먼 공유를 사용으로 설정합니다. 공유가 사용으로 설정된 경우 동일한 자원 요구사항을 가진 동일한 사용자가 제출한 모든 작업은 호스트, 소켓 또는 GPU에서 동일한 MPS 디먼을 공유합니다.

LSFmps 키워드의 값에 따라 호스트별, 소켓별 또는 GPU별로 MPS 디먼을 시작합니다.

  • mps=yes 가 설정되면 LSF 는 작업당 호스트당 하나의 MPS 디먼을 시작합니다.

    공유가 사용 가능한 경우 (즉, mps=yes,shared 가 설정된 경우), LSF 는 동일한 자원 요구사항을 가진 동일한 사용자가 제출한 모든 작업에 대해 호스트당 하나의 MPS 디먼을 시작합니다. 이러한 작업은 모두 호스트에서 동일한 MPS 디먼을 사용합니다.

    CUDA_VISIBLE_DEVICES 환경 변수가 사용 안함으로 설정된 경우 (즉, mps=yes,nocvd 가 설정된 경우), LSF 는 태스크에 대해 CUDA_VISIBLE_DEVICES<number> 환경 변수를 설정하지 않으므로 LSF MPI 는 태스크에 대해 CUDA_VISIBLE_DEVICES 를 설정하지 않습니다. LSFCUDA_VISIBLE_DEVICES가 아닌 태스크에 대한 CUDA_VISIBLE_DEVICES<number> 환경 변수만 설정합니다. LSF MPICUDA_VISIBLE_DEVICES<number> 환경 변수를 CUDA_VISIBLE_DEVICES 로 변환하고 태스크에 대해 설정합니다.

  • mps=per_socket 가 설정되면 LSF 는 작업당 소켓당 하나의 MPS 디먼을 시작합니다. 공유로 사용 가능한 경우 (즉, mps=per_socket,shared 가 설정된 경우), LSF 는 동일한 자원 요구사항을 가진 동일한 사용자가 제출한 모든 작업에 대해 소켓당 하나의 MPS 디먼을 시작합니다. 이러한 작업은 모두 소켓에 대해 동일한 MPS 디먼을 사용합니다.
  • mps=per_gpu 가 설정된 경우 LSF 는 작업당 GPU당 하나의 MPS 디먼을 시작합니다. 공유로 사용으로 설정된 경우 (즉, mps=per_gpu,shared 가 설정된 경우) LSF 는 동일한 자원 요구사항을 가진 동일한 사용자가 제출한 모든 작업에 대해 GPU당 하나의 MPS 디먼을 시작합니다. 이러한 작업은 모두 GPU에 대해 동일한 MPS 디먼을 사용합니다.
중요: MPS와 함께 EXCLUSIVE_THREAD 모드를 사용하는 것은 지원되지 않으며 예기치 않은 동작이 발생할 수 있습니다.
j_exclusive=yes | 아니오
할당된 GPU를 다른 작업에서 사용할 수 있는지 여부를 지정합니다. 모드가 exclusive_process로 설정되면 j_exclusive=yes 옵션이 자동으로 설정됩니다.
aff=yes | 아니오
엄격한 GPU-CPU 선호도 바인딩을 적용할지 여부를 지정합니다. no로 설정된 경우 LSF 는 CPU 선호도를 유지하면서 GPU 선호도를 완화합니다. 기본적으로 aff=yes 는 엄격한 GPU-CPU 선호도 바인딩을 유지하도록 설정되어 있습니다.
참고: aff=yes 설정은 block=yes 와 충돌합니다 (태스크 수가 요청된 GPU수보다 큰 경우 할당된 GPU를 블록으로 분배). 이는 엄격한 CPU-GPU 바인딩이 CPU NUMA ID를 기반으로 태스크에 GPU를 할당하기 때문이며, 이는 할당된 GPU를 블록으로 분배하는 것과 충돌합니다. aff=yesblock=yes 가 모두 GPU 요구사항 문자열에 지정된 경우 block=yes 설정이 우선하고 엄격한 CPU-GPU 선호도 바인딩이 사용 안함으로 설정됩니다 (즉, aff=no 가 자동으로 설정됨).
block=yes | 아니오
작업 수가 요청된 GPU수보다 큰 경우 블록 분배 즉, 작업의 할당된 GPU를 블록으로 분배할지 여부를 지정합니다. yes로 설정된 경우, LSF 는 태스크 수가 요청된 GPU수보다 큰 경우 작업의 할당된 모든 GPU를 블록으로 분배합니다. 기본적으로 block=no 는 할당된 GPU가 블록으로 분배되지 않도록 설정됩니다.

예를 들어, GPU 작업이 4개의 GPU및 40개의 태스크가 있는 호스트에서 실행하도록 요청하는 경우 블록 분배는 랭크 0-9의 경우 GPU0 , 랭크 10-19의 경우 GPU1 , 탱크 20-29의 경우 GPU2 , 랭크 30-39의 경우 GPU3 을 지정합니다.

참고: block=yes 설정은 aff=yes (엄격한 CPU-GPU 선호도 바인딩) 과 충돌합니다. 이는 엄격한 CPU-GPU 바인딩이 CPU NUMA ID를 기반으로 태스크에 GPU를 할당하기 때문이며, 이는 할당된 GPU를 블록으로 분배하는 것과 충돌합니다. block=yesaff=yes 가 모두 GPU 요구사항 문자열에 지정된 경우 block=yes 설정이 우선하고 엄격한 CPU-GPU 선호도 바인딩이 사용 안함으로 설정됩니다 (즉, aff=no 가 자동으로 설정됨).
gpack=yes | 아니오
공유 모드 작업 전용입니다. 팩 스케줄링을 사용할지 여부를 지정합니다. yes로 설정된 경우 LSF 는 여러 공유 모드 GPU 작업을 할당된 GPU에 압축합니다. LSF 는 다음과 같이 공유 모드 GPU를 스케줄합니다.
  1. LSF 는 이미 실행 중인 작업이 있는 공유 GPU의 수를 기반으로 한 후 독점적이지 않은 GPU의 수를 기준으로 후보 호스트를 정렬합니다 (가장 큰 항목에서 가장 작은 항목 순으로).

    order [] 키워드가 자원 요구사항 문자열에 정의된 경우, order []를 정렬한 후 LSFgpack 정책을 기준으로 후보 호스트를 다시 정렬합니다 (이미 실행 중인 작업이 있는 공유 GPU를 기준으로 한 후 독점적이지 않은 GPU수를 기준으로). gpack 정책 정렬 우선순위가 order [] 정렬보다 높습니다.

  2. LSF 는 실행 중인 작업 수를 기반으로 각 호스트의 후보 GPU를 정렬합니다 (가장 큰 GPU에서 가장 작은 GPU까지).

스케줄링 후에 공유 모드 GPU 작업은 새 공유 GPU가 아니라 먼저 정렬되는 할당된 공유 GPU에 압축됩니다.

Docker 속성 선호도가 사용으로 설정된 경우 후보 호스트의 순서는 GPU별로 정렬하기 전에 Docker 속성 선호도별로 정렬됩니다.

기본적으로 gpack=no 는 팩 스케줄링이 사용되지 않도록 설정되어 있습니다.

g벤더=AMD | nvidia
GPU 공급업체 유형을 지정합니다. LSF 는 지정된 벤더 유형으로 GPU를 할당합니다.

amd 를 지정하여 AMD GPU를 요청하거나 nvidia 를 지정하여 Nvidia GPU를 요청하십시오.

기본적으로 LSF 는 Nvidia GPU를 요청합니다.

gmodel=모델_이름 [ -mem_size ]
특정 모델 이름 및 선택적으로 해당 총 GPU 메모리를 사용하여 GPU를 지정합니다. 기본적으로 LSF 는 GPU를 동일한 모델 (사용 가능한 경우) 로 할당합니다.

gmodel 키워드는 다음 형식을 지원합니다.

gmodel=모델_이름
지정된 브랜드 및 모델 이름 (예: TeslaK80) 을 사용하여 GPU를 요청합니다.
gmodel=short_model_name
특정 브랜드 이름 (예: Tesla, Quadro, NVS) 을 사용하여 GPU를 요청합니다. 또는 모델 유형 이름 (예: K80, P100).
gmodel= 모델_이름 - 메모리_크기
지정된 브랜드 이름 및 총 GPU 메모리 크기를 사용하여 GPU를 요청합니다. GPU 메모리 크기는 M, G, T, MB, GBTB (예: 12G) 를 포함하는 숫자 및 해당 단위로 구성됩니다.

각 호스트에서 사용 가능한 GPU 모델 이름을 찾으려면 lsload –gpuload, lshosts –gpu또는 bhosts -gpu 명령을 실행하십시오. 모델 이름 문자열에 공백 문자가 포함되어 있지 않습니다. 또한 슬래시 (/) 및 하이픈 (-) 문자는 밑줄 문자 (_) 로 대체됩니다. 예를 들어, GPU 모델 이름 "Tesla C2050 / C2070LSF에서 "TeslaC2050_C2070" 로 변환됩니다.

gMEM=MEM_값

작업에 필요한 각 GPU의 GPU 메모리를 지정하십시오. mem_value 의 형식은 다른 자원 값과 동일합니다 (예:mem또는swap) 작업 자원 요구사항의 rusage 섹션에서 (-R).

gtile= ! | tile_num
소켓당 GPU수를 지정합니다. 호스트의 소켓당 GPU수를 명시적으로 정의하는 숫자를 지정하거나 느낌표 (!) 를 지정하여 LSF 가 호스트의 모든 소켓을 따라 GPU를 균등하게 나누는 숫자를 자동으로 계산할 수 있도록 하십시오. LSF 는 연관관계 작업에 대해서도 gtile 요구사항을 보장합니다. 이는 gtile 요구사항을 충족할 수 없는 경우 LSF 가 GPU의 선호도를 할당된 CPU에 할당하지 않을 수 있음을 의미합니다.

선호도 작업에 대해 gtile 키워드가 지정되지 않은 경우 LSF 는 GPU를 할당한 소켓에 충분한 GPU를 할당하려고 시도합니다. 최적 소켓에 GPU가 충분하지 않으면 작업이 이 호스트로 이동할 수 없습니다.

비선호도 작업에 대해 gtile 키워드가 지정되지 않은 경우 LSF 는 동일한 소켓에 충분한 GPU를 할당하려고 시도합니다. 이를 사용할 수 없는 경우 LSF 는 별도의 GPU에 GPU를 할당할 수 있습니다.

nvlink=예
LSF, 버전 10.1 수정팩 11에서 더 이상 사용되지 않습니다. 대신 glink 키워드를 사용하십시오. GPU간 NVLink 연결에 대한 작업 적용을 사용으로 설정합니다. LSF 는 강제 실행 중인 NVLink 연결을 사용하여 GPU를 할당합니다.
glink=예
GPU간의 특수 연결에 대한 작업 적용을 사용으로 설정합니다. LSF 는 GPU 공급업체에 특정한 특수 연결을 사용하여 GPU를 할당해야 합니다.

작업이 AMD GPU를 요청하는 경우 LSF 는 xGMI 연결을 사용하여 GPU를 할당해야 합니다. 작업이 Nvidia GPU를 요청하는 경우 LSF 는 NVLink 연결을 사용하여 GPU를 할당해야 합니다.

더 이상 사용되지 않는 nvlink 키워드와 함께 glink 를 사용하지 마십시오.

기본적으로 LSF 는 이러한 연결에 GPU가 충분하지 않은 경우 특수 연결 없이 GPU를 할당할 수 있습니다.

mig=GI_size [ /CI_size ]
Nvidia MIG (Multi-Instance GPU) 디바이스 요구사항을 지정합니다.

MIG 작업에 대해 요청된 GPU 인스턴스 크기를 지정합니다. 유효한 GPU 인스턴스 크기는 1, 2, 3, 4, 7입니다.

선택 사항으로, 지정된 GPU 인스턴스 크기 뒤에 슬래시 문자(/)를 붙여 요청된 컴퓨팅 인스턴스 크기를 지정합니다. 요청된 컴퓨팅 인스턴스 크기는 요청된 GPU 인스턴스 크기보다 작거나 같아야 합니다. 또한 Nvidia MIG는 GPU/컴퓨팅 인스턴스 크기 조합 4/3, 7/5, 7/6을 지원하지 않습니다. 이를 지정하지 않으면 기본 계산 인스턴스 크기는 1입니다.

-gpu 옵션의 GPU 요구사항 구문은 lsf.conf 파일의 LSB_GPU_REQ 매개변수 및 lsb.queueslsb.applications 파일의 GPU_REQ 매개변수에 있는 구문과 동일합니다.
참고: bjobs 출력은 다음을 표시하지 않습니다.aff=yesbsub -gpu 옵션에서 aff=yes 를 지정하는 경우에도 마찬가지입니다.

GPU_REQ_MERGE 매개변수가 lsb.params 파일에서 Y 또는 y 로 정의되고 GPU 요구사항이 다중 레벨 (최소 두 개의 기본 클러스터, 큐, 애플리케이션 프로파일 또는 작업 레벨 요구사항) 에서 지정되는 경우 GPU 요구사항의 각 옵션이 개별적으로 병합됩니다. 작업 레벨은 기본 클러스터 GPU 요구사항을 대체하는 큐 레벨을 대체하는 애플리케이션 레벨을 대체합니다. 예를 들어, GPU 요구사항의 mode 옵션이 -gpu 옵션에 정의되고 mps 옵션이 큐에 정의된 경우 작업 레벨의 모드 및 큐의 mps 값이 사용됩니다.

GPU_REQ_MERGE 매개변수가 lsb.params 파일에서 Y 또는 y 로 정의되지 않고 GPU 요구사항이 다중 레벨 (최소한 두 개의 기본 클러스터, 큐, 애플리케이션 프로파일 또는 작업 레벨 요구사항) 에서 지정되는 경우, 전체 GPU 요구사항 문자열이 대체됩니다. 전체 작업 레벨 GPU 요구사항 문자열은 기본 GPU 요구사항을 대체하는 큐 레벨을 대체하는 애플리케이션 레벨을 대체합니다.

esub 매개변수 LSB_SUB4_GPU_REQ-gpu 옵션의 값을 수정합니다.

LSF 는 먼저 토폴로지 요구사항을 충족하는 GPU를 선택합니다. 선택된 GPU의 GPU 모드가 요청된 모드가 아닌 경우 LSF 는 GPU를 요청된 모드로 변경합니다. 예를 들어, LSF 가 공유 GPU가 필요한 작업에 exclusive_process GPU를 할당하는 경우 LSF 는 작업이 시작되기 전에 GPU 모드를 공유로 변경한 후 작업이 완료되면 모드를 다시 exclusive_process 로 변경합니다.

GPU 요구사항은 작업에 대한 rusage 자원 요구사항으로 변환됩니다. 예를 들어, num=2 는 다음으로 변환됩니다.rusage[ngpus_physical=2]. bjobs, bhistbacct 명령을 사용하여 병합된 자원 요구사항을 확인하십시오.

복합 GPU 요구사항 (다른 호스트의 작업에 대한 다른 GPU 요구사항 또는 병렬 작업의 다른 파트에 대한 다른 GPU 요구사항) 및 대체 GPU 요구사항 (실행할 작업에 대해 둘 이상의 GPU 요구사항 세트가 허용될 수 있는 경우) 을 포함하여 bsub -gpu 옵션 및 GPU_REQ 매개변수 구문이 포함할 수 없는 복잡한 GPU 요구사항이 있을 수 있습니다. 복합 GPU 요구사항의 경우 bsub -R 명령 옵션을 사용하거나 lsb.applications 또는 lsb.queues 파일에서 RES_REQ 매개변수를 사용하여 자원 요구사항 문자열을 정의하십시오.

중요: -gpu 옵션, lsf.conf 파일의 LSB_GPU_REQ 매개변수 또는 lsb.queues 또는 lsb.applications 파일의 GPU_REQ 매개변수를 사용하여 mode, j_exclusivemps 옵션만 정의할 수 있습니다. bsub -R 명령 옵션의 rusage 자원 요구사항 문자열 또는 lsb.queues 또는 lsb.applications 파일의 RES_REQ 매개변수와 함께 이 옵션을 사용할 수 없습니다.

기본값

정의되지 않음

관련 참조

  • LSB_GPU_REQ
  • bsub -gpu

GPU_실행_시간_계수

GPU 런타임 가중치 요인을 지정합니다. 공정 분담 일정 관리에서만 사용됩니다.

구문

GPU_RUN_TIME_FACTOR=번호

설명

사용자의 동적 공유 우선순위의 계산에서, 이 요인은 사용자의 실행 중인 GPU 작업의 총 GPU 런타임의 상대적 중요도를 판별합니다.

정의되지 않은 경우 동일한 이름의 lsb.params 매개변수에서 클러스터 전체 값이 사용됩니다.

기본값

정의되지 않음.

히스토리 호스트

누적 CPU 시간, 런타임 및 히스토리 런타임의 감소 비율을 판별합니다. 적정 공유 스케줄링에서만 사용됩니다.

구문

HIST_HOURS=시간

설명

동적 사용자 우선순위를 계산하기 위해 LSF는 감소 요인을 사용하여 실제 CPU 시간 및 실행 시간을 조정합니다. 최근에 사용한 시간의 1시간은 지정된 시간이 경과한 후 0.1 시간과 같습니다.

감소된 실행 시간 및 히스토리 실행 시간으로 동적 사용자 우선순위를 계산하기 위해 LSF는 동일한 감소 요인을 사용하여 완료된 작업의 누적 실행 시간 및 실행 중인 작업의 실행 시간을 스케일하므로 최근에 사용된 시간의 1시간은 지정된 시간이 경과한 후 0.1 시간과 동일합니다.

HIST_HOURS=0인 경우 실행 중인 작업에 의해 누적된 CPU 시간 및 런타임이 감소되지 않습니다.

정의되지 않은 경우 동일한 이름의 lsb.params 매개변수에서 클러스터 전체 값이 사용됩니다.

기본값

정의되지 않음.

작업 한계

호스트별 작업 슬롯 한계를 지정합니다.

구문

HJOB_LIMIT=정수

설명

이 매개변수는 이 큐가 모든 호스트에서 사용할 수 있는 최대 작업 슬롯 수를 정의합니다. 이 한계는 보유할 수 있는 프로세서 수에 관계없이 호스트당 구성됩니다.

주: LSB_ENABLE_HPC_ALLOCATION=Y 가 정의되면 실행 호스트의 모든 슬롯이 독점 작업에 할당되어야 합니다. 큐의 HJOB_LIMIT 값이 실행 호스트의 최대 슬롯 수보다 작은 경우 이 큐에 제출된 작업은 무기한으로 보류 상태로 남아 있습니다. 이는 LSF가 독점 작업에 대해 이 호스트의 모든 슬롯을 할당할 수 없기 때문입니다.

다음 큐는 각 큐에서 최대 하나의 작업을 실행합니다.hostA,hostBhostC:
Begin Queue 
... 

HJOB_LIMIT = 1 

HOSTS=hostA hostB hostC 
... 

End Queue

기본값

무제한

호스트 POST 실행

큐 레벨에서 호스트 기반 사후 실행 처리를 사용합니다.

구문

HOST_POST_EXEC=명령

설명

HOST_POST_EXEC 명령은 작업이 완료된 후 모든 실행 호스트에서 실행됩니다. 작업 기반 사후 실행 POST_EXEC 이 큐 레벨, 애플리케이션 레벨 또는 작업 레벨에서 정의된 경우 HOST_POST_EXEC 명령은 모든 레벨의 POST_EXEC 이후에 실행됩니다.

호스트 기반 사후 실행 명령은 큐 및 애플리케이션 레벨에서 구성할 수 있으며 다음 순서로 실행할 수 있습니다.
  1. 애플리케이션 레벨 명령
  2. 큐 레벨 명령입니다.

지원되는 명령 규칙은 큐 섹션에 대한 기존 POST_EXEC 와 동일합니다. 세부사항은 POST_EXEC 주제를 참조하십시오.

참고: 호스트 기반 사후 실행 명령은 Windows 시스템에서 실행할 수 없습니다. 이 매개변수는 작업 기반 사후 실행 처리를 구성하는 데 사용할 수 없습니다.

기본값

정의되지 않음.

호스트 사전 실행

큐 레벨에서 호스트 기반 사전 실행 처리를 사용합니다.

구문

HOST_PRE_EXEC=명령

설명

HOST_PRE_EXEC 명령은 작업이 시작되기 전에 모든 실행 호스트에서 실행됩니다. 작업 기반 사전 실행 PRE_EXEC 이 큐 레벨/애플리케이션 레벨/작업 레벨에서 정의된 경우 HOST_PRE_EXEC 명령은 모든 레벨의 PRE_EXEC 전에 실행됩니다.

호스트 기반 사전 실행 명령은 큐 및 애플리케이션 레벨에서 구성할 수 있으며 다음 순서로 실행할 수 있습니다.
  1. 큐 레벨 명령
  2. 애플리케이션 레벨 명령입니다.

지원되는 명령 규칙은 큐 섹션에 대한 기존 PRE_EXEC 와 동일합니다. 세부사항은 PRE_EXEC 주제를 참조하십시오.

참고: Windows 플랫폼에서는 호스트 기반 사전 실행 명령을 실행할 수 없습니다. 이 매개변수는 작업 기반 사전 실행 처리를 구성하는 데 사용할 수 없습니다.

기본값

정의되지 않음.

작업에 대한 호스트 한계

작업별 호스트 한계를 지정합니다.

구문

HOSTLIMIT_PER_JOB=정수

설명

이 매개변수는 이 큐의 작업이 사용할 수 있는 최대 호스트 수를 정의합니다. LSF 는 스케줄링의 할당 단계 중에 호스트 한계를 확인합니다. 병렬 작업에 대해 요청된 호스트 수가 이 한계를 초과하고 LSF 가 최소 요청 슬롯 수를 충족할 수 없는 경우 병렬 작업이 보류됩니다. 그러나 재개된 병렬 작업의 경우, 이 매개변수는 작업의 호스트 할당이 이 매개변수에 지정된 작업당 호스트 한계를 초과하더라도 작업이 재개되는 것을 중지하지 않습니다.

기본값

무제한

호스트

이 큐의 작업을 실행할 수 있는 호스트의 공백으로 구분된 목록을 지정합니다.

구문

HOSTS=호스트 목록 | none
  • host_list 는 다음 항목의 공백으로 구분된 목록입니다.
    • host_name[@cluster_name] [[!] |+pref_level]
    • 호스트 파티션[+pref_level]
    • 호스트 그룹[[!] |+pref_level]
    • 계산 단위[[!] |+pref_level]
    • [~]호스트_이름
    • [~]호스트 그룹
    • [~]계산 단위
  • 목록은 다음 항목을 한 번만 포함할 수 있습니다.
    • 기타[+pref_level]
    • all
    참고: allremoteall@cluster_name 키워드는 더 이상 사용되지 않으며 LSF의 향후 버전에서 제거될 수 있습니다.
  • none 키워드는 원격 전용 큐를 지정하기 위해 멀티클러스터 작업 전달 모델에서만 사용됩니다.

설명

계산 장치, 호스트 그룹 또는 호스트 파티션이 목록에 포함된 경우, 작업은 장치, 그룹 또는 파티션의 모든 호스트에서 실행될 수 있습니다. 호스트 목록의 모든 멤버는 단일 호스트 파티션에 속하거나 호스트 파티션에 속하지 않아야 합니다. 그렇지 않으면 작업 스케줄링에 영향을 줄 수 있습니다.

일부 항목 뒤에는 해당 호스트에 작업을 디스패치하기 위한 환경 설정을 표시하는 양수 및 더하기 부호 (+) 가 올 수 있습니다. 숫자가 높을수록 환경 설정이 높음을 나타냅니다. 호스트 환경 설정이 제공되지 않으면 0으로 가정합니다. 여러 후보 호스트가 있는 경우 LSF는 가장 높은 환경 설정을 가진 호스트로 작업을 디스패치합니다. 동일한 환경 설정 레벨의 호스트는 로드별로 정렬됩니다.

계산 단위, 호스트 그룹 또는 호스트 파티션에 환경 설정이 지정된 경우 단위, 그룹 또는 파티션의 각 호스트에는 동일한 환경 설정이 있습니다.

명시적으로 나열되지 않은 모든 호스트를 포함하려면 others 키워드를 사용하십시오.

모든 원격 호스트 그룹 이름 키워드를 사용하여 호스트에 임대를 포함하세요.

큐의 all 스펙에서 호스트를 제외하려면 not 연산자 (~) 를 사용하십시오. 이는 대형 클러스터가 있지만 큐 정의에서 몇 개의 호스트만 제외하려는 경우에 유용합니다.

Not 연산자는 all 키워드와 함께만 사용할 수 있습니다. othersnone키워드에는 유효하지 않습니다 .

not 연산자 (~) 를 사용하여 호스트 그룹을 제외할 수 있습니다.

병렬 작업의 경우, 호스트에 첫 번째 실행 호스트에서 실행되는 프로세스를 처리하는 데 필요한 자원 또는 런타임 환경이 있는지 확인하려면 첫 번째 실행 호스트 후보를 지정하십시오.

하나 이상의 호스트, 호스트 그룹 또는 계산 단위를 첫 번째 실행 호스트 후보로 지정하려면 이름 뒤에 느낌표 (!) 기호를 추가하십시오.

첫 번째 실행 호스트 후보를 지정할 때 다음 가이드라인을 따르십시오.
  • 계산 단위 또는 호스트 그룹을 지정하는 경우 먼저 lsb.hosts파일에서 단위 또는 그룹을 정의해야 합니다.
  • 동적 호스트 그룹을 첫 번째 실행 호스트로 지정하지 마십시오.
  • 전체 또는 기타 또는 호스트 파티션을 첫 번째 실행 호스트로 지정하지 마세요.
  • (!) 로 식별되는 호스트에 대한 환경 설정 (+) 을 첫 번째 실행 호스트 후보로 지정하지 마십시오.
  • 각 병렬 작업에 대해 작업의 CPU 요구사항을 충족하기에 충분한 일반 호스트를 지정하십시오. LSF가 현재 작업에 대한 첫 번째 실행 호스트를 선택하면 다른 첫 번째 실행 호스트 후보가
    • 현재 작업을 사용할 수 없게 됨
    • 일반 또는 첫 번째 실행 호스트로 다른 작업에 사용 가능한 상태로 유지
  • brun 명령을 사용할 때 첫 번째 실행 호스트 후보를 지정할 수 없습니다.
제한사항: EGO를 사용으로 설정한 경우 호스트 그룹 및 계산 단위가 적용되지 않습니다.
제한사항: 큐 기반 적정 공유에 참여하는 호스트는 호스트 파티션에 있을 수 없습니다.

호스트 교차가 있는 동작

bsub에 의해 지정된 호스트 기본 설정-m 대기열 사양 및 사전 예약 호스트와 지능적으로 결합합니다. 작업 제출 시 지정되고 큐에 속하거나 고급 예약이 있는 호스트에서 작업이 실행됩니다.

예제 1

HOSTS=hostA+1 hostB hostC+1 hostD+3

이 예제는 다음과 같은 세 가지 레벨의 환경 설정을 정의합니다. 작업 실행hostD가능한 한 많이 실행하십시오. 그렇지 않으면hostA또는hostC가능하면 다음에서 실행하십시오.hostB. 작업이 실행되지 않아야 함hostB다른 모든 호스트가 너무 바빠서 더 많은 작업을 허용할 수 없는 경우

예제 2

HOSTS=hostD+1 others

작업 실행hostD가능한 한 많이 실행하십시오. 그렇지 않으면 사용 가능한 최소 로드 호스트에서 작업을 실행하십시오.

예제 3

HOSTS=all ~hostA

다음을 제외하고 클러스터의 모든 호스트에서 작업 실행hostA.

예제 4

HOSTS=Group1 ~hostA hostB hostC

작업 실행hostB,hostC및 모든 호스트Group1예외hostA.

예제 5

HOSTS=hostA! hostB+ hostC hostgroup1!

다음 중 하나를 사용하여 병렬 작업 실행hostA또는 다음에 정의된 호스트hostgroup1첫 번째 실행 호스트로 사용할 수 있습니다. 첫 번째 실행 호스트가 자원 요구사항으로 인해 전체 작업을 실행할 수 없는 경우, 다음에서 나머지 작업을 실행합니다.hostB.hostB작업을 승인하기에 너무 바쁜 경우 또는hostB전체 작업을 실행하기에 충분한 자원이 없는 경우, 나머지 작업을 실행합니다.hostC.

예제 6

HOSTS=computeunit1! hostB hostC

호스트를 사용하여 병렬 작업을 실행합니다.computeunit1첫 번째 실행 호스트로 사용할 수 있습니다. 자원 요구사항으로 인해 첫 번째 실행 호스트가 전체 작업을 실행할 수 없는 경우 다른 호스트에서 나머지 작업을 실행합니다.computeunit1:NONE.hostB마지막으로hostC.

예 7

HOSTS=hostgroup1! computeunitA computeunitB computeunitC

호스트를 사용하여 병렬 작업을 실행합니다.hostgroup1첫 번째 실행 호스트로 사용할 수 있습니다. 추가 호스트가 필요한 경우, 첫 번째 실행 호스트와 동일한 계산 단위에 있는 다른 호스트에서 나머지 작업을 실행한 후 lsb.hosts ComputeUnit 섹션에 정의된 순서대로 나머지 계산 단위에 있는 호스트를 실행합니다.

기본값

all (큐가 클러스터의 모든 호스트를 사용할 수 있으며 모든 호스트가 동일한 환경 설정을 가짐)

최종 기한 무시

최종 기한 제한조건 스케줄링을 사용하지 않습니다

구문

IGNORE_DEADLINE=Y

설명

Y로 설정하면 LSF가 최종 기한 제한조건 스케줄링을 무시하고 최종 기한 제한조건에 관계없이 모든 작업을 시작합니다.

중요 작업 키 로그

수신 작업 큐에 대한 다중 클러스터 보류 작업 한계를 지정합니다. 멀티클러스터 작업 전달 모델에서만 사용됩니다.

구문

IMPT_JOBBKLG=정수 |infinit

설명

이 매개변수는 큐에서 보류 중일 수 있는 최대 다중 클러스터 작업 수를 표시합니다. 한계에 도달하면 큐가 원격 클러스터에서 작업 승인을 중지합니다.

infinit 키워드를 사용하여 큐가 무제한 수의 보류 중인 다중 클러스터 작업을 승인하도록 하십시오.

기본값

50

IMPT_JOBLIMIT

원격 클러스터에서 수신 작업 큐에 구성할 수 있는 다중 클러스터 시작 작업의 수를 지정합니다. 멀티클러스터 작업 전달 모델에서만 사용됩니다.

구문

IMPT_JOBLIMIT=정수 |infinit

설명

이 매개변수는 큐에서 시작할 수 있는 최대 멀티클러스터 원격 작업 수를 나타냅니다. 한계에 도달하면 큐가 큐에서 원격 작업 디스패치를 중지합니다.

작업 수에 0또는 양의 정수를 지정하십시오.

infinit 키워드를 사용하여 큐가 무제한 수의 시작 멀티클러스터 작업을 허용하도록 하십시오.

기본값

infinit (큐는 무제한 수의 시작 멀티클러스터 작업 태스크를 허용합니다.)

IMPT_TASKBKB

수신 작업 큐에 대한 다중 클러스터 보류 작업 태스크 한계를 지정합니다. 멀티클러스터 작업 전달 모델에서만 사용됩니다.

구문

IMPT_TASKBKLG=정수 |infinit

설명

제출 클러스터에서 요청된 작업 태스크의 총계와 수신 큐에 있는 가져온 보류 중인 태스크의 수가 IMPT_TASKBKLG보다 큰 경우, 큐는 원격 클러스터에서 작업 승인을 중지하고 작업은 수신 큐로 전달되지 않습니다.

태스크 수에 0-2147483646사이의 정수를 지정하십시오.

infinit 키워드를 사용하여 큐가 무제한 수의 보류 중인 다중 클러스터 작업 태스크를 허용하도록 하십시오.

작업이 수신 큐로 전달되지 않도록 하려면 IMPT_TASKBKLG 를 0으로 설정하십시오.

참고: IMPT_SLOTBKLGIMPT_TASKBKLG 로 변경되었으며 개념은 LSF 9.1.3현재 슬롯에서 태스크로 변경되었습니다.

기본값

infinit (큐는 무제한 수의 보류 중인 다중 클러스터 작업 태스크를 허용합니다.)

중요 작업 제한

수신 작업 큐에서 구성할 수 있는 원격 클러스터의 다중 클러스터 시작 작업 태스크 수를 지정합니다. 멀티클러스터 작업 전달 모델에서만 사용됩니다.

구문

IMPT_TASKLIMIT=정수 |infinit

설명

제출 클러스터에서 요청된 작업 태스크의 총계와 수신 큐에 있는 가져온 시작 태스크의 수가 IMPT_TASKLIMIT보다 큰 경우 큐는 큐에서 원격 작업의 디스패치를 중지하고 작업은 수신 큐로 전달되지 않습니다.

작업 태스크 수에 양의 정수를 지정하십시오.

작업 태스크가 수신 큐로 전달되지 않도록 하려면 IMPT_TASKLIMIT 를 0으로 설정하십시오.

infinit 키워드를 사용하여 큐가 무제한 수의 시작 멀티클러스터 작업 태스크를 허용하도록 하십시오.

기본값

infinit (큐는 무제한 수의 시작 멀티클러스터 작업 태스크를 허용합니다.)

INTERACTIVE

큐가 대화식 또는 비대화식 작업을 승인하는지 여부를 지정합니다.

구문

INTERACTIVE=YES | NO | ONLY

설명

YES로 설정하면 큐가 대화식 및 비대화식 일괄처리 작업을 모두 허용합니다.

NO로 설정하면 큐가 대화식 일괄처리 작업을 거부합니다.

ONLY로 설정하면 큐가 대화식 일괄처리 작업을 승인하고 비대화식 일괄처리 작업을 거부합니다.

대화식 일괄처리 작업은 bsub -I를 통해 제출됩니다.

기본값

예 큐는 대화식 및 비대화식 작업을 모두 허용합니다.

인터럽트 백필

높은 우선순위의 대형 작업이 시작될 때 종료되는 낮은 우선순위의 작은 작업에서 예약된 작업 슬롯을 사용할 수 있도록 허용하는 인터럽트 가능한 백필 스케줄링 정책을 구성합니다.

구문

INTERRUPTIBLE_BACKFILL=

설명

하나의 인터럽트 가능한 백필 queue.It 클러스터에서 가장 낮은 우선순위의 큐이어야 합니다.

backfilling.This 최소 시간 분할은 특정 작업 특성에 따라 다릅니다. 작업의 최소한 하나의 유용한 반복보다 길어야 합니다. 사이트에 명확하게 다른 클래스의 작업이 있는 경우 다중 큐가 작성될 수 있습니다.

인터럽트 가능한 백필 작업:
  • 일반 작업으로 시작하고 큐 런타임 한계를 초과하면 kill됩니다. 또는
  • 지정된 최소 시간보다 긴 백필 시간 슬라이스가 있을 때마다 백필을 위해 시작되며, 슬롯 예약 작업이 시작되기 전에 종료됩니다.

RUNLIMIT큐는 백필을 위한 최대 시간 분할에 해당하며 큐에 제출된 새 작업의 대기 기간이 사용자에게 허용되도록 구성되어야 합니다. 10분의 런타임이 공통 값입니다.

인터럽트 가능한 백필 큐에 대해 REQUEUE_EXIT_VALUES를 구성해야 합니다.

BACKFILL및 RUNLIMIT를 큐에 구성해야 합니다. BACKFILL및 RUNLIMIT가 구성되지 않은 경우 큐를 사용할 수 없습니다.

가정 및 제한사항:

  • 인터럽트 가능한 백필 작업은 일반 백필 작업과 동일한 방식으로 계산된 시작 시간까지 슬롯 예약 작업 시작을 보류합니다. 인터럽트 가능한 백필 작업은 시간이 올 때 종료되는 것 이외의 어떤 방식으로도 선점되지 않습니다.
  • 큐가 인터럽트 가능한 백필, 백필 및 런타임 스펙의 일관성에 대해 검사되는 동안에는 리큐 엑시트 값 절이 확인되지 않으며 자동으로 실행되지도 않습니다. 사이트 정책에 따라 리큐 종료 값을 구성하십시오.
  • 인터럽트 가능 백필 작업은 최소한 하나의 유용한 계산 단위를 수행하고 최소 시간 분할 내에 해당 데이터를 저장할 수 있어야 하며 다시 시작된 후 계산을 계속할 수 있어야 합니다.
  • 인터럽트 가능 백필 패러다임은 다중 노드에 분산된 병렬 작업 실행을 명시적으로 금지하지 않습니다. 그러나 이러한 작업의 성공 가능성은 0에 가깝습니다.

기본값

정의되지 않음. 인터럽트 가능한 백필링이 없습니다.

작업 승인 간격

동일한 호스트에 두 번째 작업을 디스패치하기 전에 호스트에 작업을 디스패치한 후 대기하는 시간을 지정합니다.

구문

JOB_ACCEPT_INTERVAL=정수

설명

이 매개변수 값에 lsb.params MBD_SLEEP_TIME (기본적으로 60초) 값을 곱합니다. 계산 결과는 동일한 호스트에 두 번째 작업을 디스패치하기 전에 호스트에 작업을 디스패치한 후 대기하는 시간 (초) 입니다.

0 (영) 으로 설정되면 호스트는 각 디스패치 순서에서 둘 이상의 작업을 승인할 수 있습니다. 기본적으로 호스트에서 실행할 수 있는 총 작업 수에는 제한이 없으므로 이 매개변수가 0으로 설정되면 매우 많은 수의 작업이 한 번에 모두 호스트에 디스패치될 수 있습니다. 이로 인해 더 이상 프로세스를 작성할 수 없을 때까지 시스템이 과부하될 수 있습니다. 이 매개변수를 0으로 설정하는 것은 권장되지 않습니다.

큐 수준(lsb.queues)에서 설정된 JOB_ACCEPT_INTERVAL은 클러스터 수준(lsb.params)에서 설정된 JOB_ACCEPT_INTERVAL을 재정의합니다.

참고:

JOB_ACCEPT_INTERVAL 매개변수는 호스트에 실행 중인 작업이 있는 경우에만 적용됩니다. JOB_ACCEPT_INTERVAL이 경과하기 전에 완료된 짧은 작업을 실행하는 호스트는 대기하지 않고 새 작업을 승인할 수 있습니다.

기본값

정의되지 않음. 큐는 lsb.params에 정의된 JOB_ACCEPT_INTERVAL을 사용하며, 기본값은 1입니다.

작업 조치 경고 시간

작업 제어 조치가 발생하기 전에 작업 경고 조치가 수행되는 시간을 지정합니다.

구문

JOB_ACTION_WARNING_TIME=[hour:]

설명

작업 조치 경고 시간이 정규화되지 않았습니다.

작업 경고를 적용하려면 작업 경고 조치 ( JOB_WARNING_ACTION 매개변수) 와 함께 작업 조치 경고 시간을 지정해야 합니다.

bsub -wt 옵션으로 지정된 경고 시간은 큐의 JOB_ACTION_WARNING_TIME 를 대체합니다. JOB_ACTION_WARNING_TIME 는 명령행 옵션이 지정되지 않은 경우 기본값으로 사용됩니다.

JOB_ACTION_WARNING_TIME=2
JOB_WARNING_ACTION=URG

작업이 런타임 한계 또는 종료 최종 기한에 도달하거나 큐의 실행 창이 닫히기 2분전에 URG 신호가 작업에 전송됩니다.

기본값

정의되지 않음

작업 제어

LSF에서 SUSPEND, RESUME및 TERMINATE 조치의 동작을 변경합니다.

구문

JOB_CONTROLS=SUSPEND[신호 | 명령어 | CHKPNT] RESUME[신호 | 명령어] TERMINATE[신호 | 명령어 CHKPNT]
  • signal 은 UNIX 신호 이름 (예: SIGTSTP 또는 SIGTERM) 입니다. 지정된 신호가 작업으로 전송됩니다. 동일한 신호 세트가 모든 UNIX 시스템에서 지원되는 것은 아닙니다. 시스템에서 지원되는 신호의 기호 이름 (SIG 접두부 없이) 목록을 표시하려면 kill -l 명령을 사용하십시오.
  • command 는 호출할 /bin/sh 명령행을 지정합니다.
    제한사항:

    조치 정의 내에서 명령행을 따옴표로 묶지 마십시오. 동일한 신호를 트리거하는 조치가 뒤따르는 신호를 지정하지 마십시오. 예를 들어, 다음을 지정하지 마십시오.JOB_CONTROLS=TERMINATE[bkill]또는JOB_CONTROLS=TERMINATE[brequeue]. 이로 인해 신호와 조치 사이에 교착 상태가 발생한다.

  • CHKPNT는 시스템이 작업을 체크하게 하는 특수 조치입니다. SUSPEND및 TERMINATE 조치에만 유효합니다.
    • SUSPEND 조치가 CHKPNT인 경우 작업이 체크포인트되고 SIGSTOP 신호를 작업에 자동으로 전송하여 중지됩니다.
    • TERMINATE 조치가 CHKPNT인 경우 작업이 체크포인트되고 자동으로 kill됩니다.

설명

  • 조치에 대한 구성 행의 컨텐츠는 다음을 사용하여 실행됩니다./bin/sh -c명령에서 쉘 기능을 사용할 수 있습니다.
  • 명령의 표준 입력, 출력 및 오류는 NULL 디바이스로 경로 재지정되므로 명령이 올바르게 실행되는지 여부를 직접 알 수 없습니다. UNIX에서 기본 널 (null) 디바이스는 /dev/null입니다.
  • 이 명령은 작업의 사용자로 실행됩니다.
  • 작업에 대해 설정된 모든 환경 변수도 명령 조치에 대해 설정됩니다. 다음과 같은 추가 환경 변수가 설정됩니다.
    • LSB_JOBPGIDS: 작업의 현재 프로세스 그룹 ID 목록
    • LSB_JOBPIDS: 작업의 현재 프로세스 ID 목록
  • SUSPEND 조치 명령의 경우 다음 환경 변수도 설정됩니다.
    • LSB_SUSP_REASONS- lsbatch.h에 정의된 대로 일시중단 이유의 비트맵을 나타내는 정수입니다. 일시중단 이유를 사용하면 명령이 작업을 일시중단하는 이유에 따라 다른 조치를 수행할 수 있습니다.
    • LSB_SUSP_SUBREASONS-작업이 일시중단되도록 한 로드 색인을 나타내는 정수입니다. 일시중단 이유 SUSP_LOAD_REASON (로드에 의해 일시중단됨) 이 LSB_SUSP_REASONS에 설정된 경우, LSB_SUSP_SUBREASONS는 lsf.h에 정의된 로드 색인 값 중 하나로 설정됩니다. 사용자 정의 작업 제어에서 LSB_SUSP_REASONS및 LSB_SUSP_SUBREASONS를 함께 사용하여 작업이 일시중단되도록 한 정확한 로드 임계값을 판별하십시오.
  • SUSPEND 명령에 추가 조치가 필요한 경우 해당 조치도 애플리케이션에 적절한 신호를 전송해야 합니다. 그렇지 않으면 LSF에 의해 일시중단된 후에도 작업이 계속 실행될 수 있습니다. 예를 들면 다음과 같습니다.JOB_CONTROLS=SUSPEND[kill $LSB_JOBPIDS; command]
  • 작업 제어 명령이 실패하면 LSF 는 원래 작업 상태를 유지합니다.
  • IBM Spectrum LSF License Scheduler를 사용하는 신호 SIGTSTP를 사용하여 선점을 설정하는 경우, 라이센스 스케줄러 선점이 작동하도록 lsf.conf 에서 LIC_SCHED_PREEMPT_STOP=Y 를 정의하십시오.
주: blaunch 를 사용하여 여러 호스트에서 병렬 작업을 실행하는 경우 lsb.queuesJOB_CONTROLS 에 정의된 작업 제어 조치는 첫 번째 실행 호스트에만 적용됩니다. 큐에 정의된 작업 제어 조치는 다른 호스트에서 실행 중인 태스크에 영향을 주지 않습니다. JOB_CONTROLS 가 정의된 경우 LSF (SUSPEND, RESUME, TERMINATE) 의 기본 작업 제어 신호는 각 실행 호스트의 각 태스크에 도달하지 않습니다.

기본값

UNIX에서 기본적으로, SUSPEND는 병렬 또는 대화식 작업의 경우 SIGTSTP를 전송하고 다른 작업의 경우 SIGSTOP을 전송합니다. RESUME은 SIGCONT를 전송합니다. TERMINATE는 SIGINT, SIGTERM및 SIGKILL을 해당 순서로 전송합니다.

Windows에서 UNIX 신호와 동등한 조치가 기본 작업 제어 조치를 수행하도록 구현되었습니다. 작업 제어 메시지는 SIGINT및 SIGTERM 신호를 대체하지만 사용자 정의된 애플리케이션만 이를 처리할 수 있습니다. 종료는TerminateProcess( )시스템 호출.

작업 유휴

유휴 작업 예외 처리에 대한 임계값을 지정합니다.

구문

JOB_IDLE=번호

설명

값은 CPU 시간/런타임을 나타내는 0.0 - 1.0 사이의 숫자여야 합니다. 작업 유휴 요인이 지정된 임계값 미만인 경우 LSF는 LSF_SERVERDIR/eadmin 를 호출하여 작업 유휴 예외에 대한 조치를 트리거합니다.

mbatchd가 작업이 유휴 상태임을 보고하기 전의 최소 작업 런타임은 lsb.params에서 DETECT_IDLE_JOB_AFTER 로 정의됩니다.

유효한 값은

0.0 과 1.0 사이의 양수

JOB_IDLE=0.10

작업 유휴 예외는 유휴 값 (CPU 시간/런타임) 이 0.10미만인 작업에 대해 트리거됩니다.

기본값

정의되지 않음. 작업 유휴 예외가 발견되지 않습니다.

작업 오버런

작업 오버런 예외 처리에 대한 임계값을 지정합니다.

구문

JOB_OVERRUN=실행 시간

설명

작업이 지정된 런타임보다 오래 실행되는 경우 LSF는 LSF_SERVERDIR/eadmin 를 호출하여 작업 오버런 예외에 대한 조치를 트리거합니다.

JOB_OVERRUN=5

작업 초과 실행 예외는 5분이상 실행되는 작업에 대해 트리거됩니다.

기본값

정의되지 않음. 작업 초과 실행 예외가 발견되지 않습니다.

작업 크기 목록

이 큐에서 허용되는 작업 크기 (태스크 수) 의 목록을 지정합니다.

구문

JOB_SIZE_LIST=default_size [크기 ...]

설명

bsubbmod에 대해 -n 또는 -R 옵션을 사용하여 작업 크기를 요청하는 보류 중인 작업을 수정하거나 작업을 제출할 때, 요청된 작업 크기는 이 큐에서 허용되는 작업 크기인 JOB_SIZE_LIST 가 지정하는 값 중 하나와 일치하는 단일 고정 값이어야 합니다. LSF 는 요청된 작업 크기가 이 목록에 없는 경우 작업을 거부합니다. 또한 bswitch 를 사용하여 요청된 작업 크기의 보류 중인 작업을 다른 큐로 전환할 때 보류 중인 작업의 요청된 작업 크기도 새 큐의 JOB_SIZE_LIST 에 있는 값 중 하나와 일치해야 합니다.

이 목록의 첫 번째 값은 기본 작업 크기이며, 이는 작업이 요청하지 않고 제출된 경우 지정된 작업 크기 요청입니다. 나머지 값은 큐에서 허용되는 다른 작업 크기이며 임의의 순서로 정의될 수 있습니다.

큐 및 애플리케이션 프로파일 (lsb.applications) 둘 다에 정의된 경우 작업 크기 요청은 두 요구사항을 모두 충족해야 합니다. 또한 JOB_SIZE_LIST 는 동일한 레벨에서 정의된 TASKLIMIT 매개변수를 대체합니다. 작업 크기 요구사항은 작업 크기 목록이 없는 큐 및 애플리케이션 프로파일에 적용되지 않으며 다른 레벨의 작업 제출 (즉, 호스트 레벨 또는 클러스터 레벨 작업 제출) 에도 적용되지 않습니다.

주: 독점 작업은 호스트에 더 많은 슬롯을 할당할 수 있으므로 태스크에 필요합니다. 예를 들어, JOB_SIZE_LIST=8-n8 를 요청하는 독점 작업이 16슬롯 호스트에서 실행되는 경우 16개의 모든 슬롯이 작업에 지정됩니다. 작업에 지정된 8개의 태스크가 작업 크기 목록과 일치하므로 작업이 예상대로 실행됩니다.

유효한 값은

1-2147483646사이의 공백으로 구분된 양의 정수 목록입니다.

기본값

정의되지 않음

작업 시작 프로그램

실행 전에 제출된 작업에 대한 특정 환경을 작성합니다.

구문

JOB_STARTER=스타터 [스타터 ] ["%USRCMD"] [스타터 ]

설명

starter 는 작업을 시작하는 데 사용할 수 있는 실행 파일입니다 (즉, 작업을 입력 인수로 승인할 수 있음). 선택적으로 추가 문자열을 지정할 수 있습니다.

기본적으로 사용자 명령은 작업 시작자 이후에 실행됩니다. 특수 문자열 %USRCMD를 사용하여 작업 시작 명령행에서 사용자 작업의 위치를 표시할 수 있습니다. %USRCMD 문자열 및 추가 명령은 따옴표 (" ") 로 묶어야 합니다.

작업 스타터 스크립트가 Windows 실행 호스트에서 실행되고 기호 (예: & 또는 |) 를 포함하는 경우 lsf.conf 에서 JOB_STARTER_EXTEND=preservestarter 매개변수를 사용하고 lsb.queues에서 JOB_STARTER=preservestarter 를 설정할 수 있습니다. 사용자 정의된 userstarter 도 사용할 수 있습니다.

JOB_STARTER=csh -c "%USRCMD;sleep 10"
이 경우 사용자가 작업을 제출하면
% bsub myjob arguments
실제로 실행되는 명령은 다음과 같습니다.
% csh -c "myjob arguments;sleep 10"

기본값

정의되지 않음. 작업 시작자가 사용되지 않습니다.

작업 실행 중

작업 저수행 예외 처리에 대한 임계값을 지정합니다.

구문

JOB_UNDERRUN=실행 시간

설명

지정된 시간 (분) 전에 작업이 종료되면 LSF가 LSF_SERVERDIR/eadmin 를 호출하여 작업 저수행 예외에 대한 조치를 트리거합니다.

JOB_UNDERRUN=2

2분 미만으로 실행 중인 작업에 대해 작업 저수행 예외가 트리거됩니다.

기본값

정의되지 않음. 작업 저수행 예외가 발견되지 않습니다.

작업 경고 조치

작업 제어 조치가 발생하기 전에 수행할 작업 조치를 지정합니다.

구문

JOB_WARNING_ACTION=신호

설명

작업 경고를 적용하려면 작업 조치 경고 시간 ( JOB_ACTION_WARNING_TIME 매개변수) 과 함께 작업 경고 조치를 지정해야 합니다.

JOB_WARNING_ACTION 가 지정되면 LSF는 실제 제어 조치를 수행하기 전에 작업에 경고 조치를 전송합니다. 이를 통해 작업 제어 조치에 의해 종료되기 전에 작업 시간이 결과를 저장할 수 있습니다.

bsub -wa 옵션으로 지정된 경고 조치는 큐의 JOB_WARNING_ACTION 를 대체합니다. JOB_WARNING_ACTION 는 명령행 옵션이 지정되지 않은 경우 기본값으로 사용됩니다.

JOB_ACTION_WARNING_TIME=2
JOB_WARNING_ACTION=URG

작업이 런타임 한계 또는 종료 최종 기한에 도달하거나 큐의 실행 창이 닫히기 2분전에 URG 신호가 작업에 전송됩니다.

기본값

정의되지 않음

로드 색인

지정된 동적 로드 인덱스에 대한 스케줄링 및 일시중단 임계값을 지정합니다.

구문

로드_인덱스= 로드Sched [/ 로드스톱 ]

지정io,it,ls,mem,pg,r15s,r1m,r15m,swp,tmp,ut또는 비공유 사용자 정의 외부 로드 색인입니다. 다중 라인을 지정하여 다중 로드 인덱스에 대한 임계값을 구성하십시오.

지정io,it,ls,mem,pg,r15s,r1m,r15m,swp,tmp,ut또는 비공유 사용자 정의 외부 로드 인덱스를 열로 사용할 수 있습니다. 다중 열을 지정하여 다중 로드 색인에 대한 임계값을 구성하십시오.

설명

다음loadSched조건은 작업이 호스트에 디스패치되기 전에 충족되어야 합니다. RESUME_COND가 지정되지 않은 경우,loadSched조건이 충족되어야 일시중단된 작업을 재개할 수 있습니다.

해당loadStop조건이 충족되면 호스트의 작업이 일시중단됩니다.

다음loadSchedloadStop임계값은 단순 AND/OR 로직을 사용하여 조건 스펙을 허용합니다. 구성된 임계값이 없는 로드 색인은 작업 스케줄링에 영향을 주지 않습니다.

작업이 호스트에서 실행 중인 유일한 일괄처리 작업이고 시스템이 대화식으로 유휴 상태인 경우 LSF는 작업을 일시중단하지 않습니다 (it> 0).

다음r15s,r1mr15mCPU 실행 큐 길이 조건은 멀티프로세서 호스트에 대해 정규화되는 lsload -E에 의해 보고되는 유효 큐 길이와 비교됩니다. 이러한 매개변수의 임계값은 단일 프로세서 호스트에 대해 적절한 레벨에서 설정되어야 합니다.

MEM=100/10 

SWAP=200/30
이 두 행은 다음과 같이 변환됩니다.loadSched조건
mem>=100 && swap>=200 
loadStop조건
mem < 10 || swap < 30

기본값

정의되지 않음

Local_max_prexec_retry

로컬 클러스터에서 작업의 사전 실행 명령을 시도하는 최대 횟수를 지정합니다.

구문

LOCAL_MAX_PREEXEC_RETRY=정수

설명

이 한계에 도달하면 작업의 기본 동작이 lsb.params, lsb.queues또는 lsb.applicationsLOCAL_MAX_PREEXEC_RETRY_ACTION 매개변수에 의해 정의됩니다.

유효한 값은

0 < max_preexec_retry < infinit_int

INFINIT_INT는 lsf.h에 정의됩니다.

기본값

정의되지 않음. 사전 실행 재시도 횟수가 무제한입니다.

관련 참조

lsb.params, lsb.queueslsb.applicationsLOCAL_MAX_PREEXEC_RETRY_ACTION .

Local_max_prexec_retry_action

로컬 클러스터에서 사전 실행 명령을 시도하는 최대 횟수에 도달할 때 작업의 기본 동작입니다.

구문

LOCAL_MAX_PREEXEC_RETRY_ACTION=SUSPEND | EXIT

설명

이 매개변수는 로컬 클러스터에서 사전 실행 명령을 시도하는 최대 횟수에 도달할 때 작업의 기본 동작을 지정합니다 ( lsb.params, lsb.queues또는 lsb.applicationsLOCAL_MAX_PREEXEC_RETRY 에 지정된 대로).

  • SUSPEND로 설정하면 로컬 또는 전용 작업이 일시중단되고 해당 상태가 PSUSP로 설정됩니다.
  • EXIT로 설정하면 로컬 또는 전용 작업이 종료되고 해당 상태가 EXIT로 설정됩니다. 작업은 마지막 사전 실행 실패 종료 코드와 동일한 종료 코드로 종료됩니다.

이 매개변수는 클러스터 전체 (lsb.params), 큐 레벨 (lsb.queues) 및 애플리케이션 레벨 (lsb.applications) 에서 구성됩니다. lsb.applications 에 지정된 조치는 lsb.queues를 대체하고 lsb.queueslsb.params 구성을 대체합니다.

기본값

정의되지 않음. lsb.params에 정의되지 않은 경우 기본 조치는 SUSPEND입니다.

관련 참조

lsb.params, lsb.queueslsb.applicationsLOCAL_MAX_PREEXEC_RETRY .

필수_교환

큐에 대한 필수 외부 스케줄링 옵션을 지정합니다.

구문

MANDATORY_EXTSCHED=외부 스케줄러 옵션

설명

bsub 명령의 -extsched 옵션은 MANDATORY_EXTSCHED 옵션과 병합되고 MANDATORY_EXTSCHED 옵션은 -extsched로 설정된 충돌하는 작업 레벨 옵션을 대체합니다.

기본값

정의되지 않음

최대 작업 선점

작업을 선점할 수 있는 최대 횟수를 지정합니다. 큐 기반 선점에만 적용됩니다.

구문

MAX_JOB_PREEMPT=정수

유효한 값은

0 < MAX_JOB_선취 < INFINIT_INT

INFINIT_INT는 lsf.h에 정의됩니다.

기본값

정의되지 않음. 선점 횟수는 무제한입니다.

최대 작업 대기열

작업을 자동으로 리큐하는 최대 횟수를 지정합니다.

구문

MAX_JOB_REQUEUE=정수

유효한 값은

0 < max_job_requeue < infinit_int

INFINIT_INT는 lsf.h에 정의됩니다.

기본값

정의되지 않음. 리큐 횟수는 무제한입니다.

Max_prexec_retry

대신 REMOTE_MAX_PREEXEC_RETRY를 사용하십시오. 이 매개변수는 역호환성을 위해 유지보수됩니다. 원격 클러스터에서 작업의 사전 실행 명령을 시도하는 최대 횟수입니다. 멀티클러스터 작업 전달 모델에서만 사용됩니다.

구문

MAX_PREEXEC_RETRY=정수

설명

작업의 사전 실행 명령이 모든 시도에 실패하면 작업이 제출 클러스터로 리턴됩니다.

유효한 값은

0 < max_preexec_retry < infinit_int

INFINIT_INT는 lsf.h에 정의됩니다.

기본값

5

최대 스케줄된 시간

제출 클러스터로 돌아가기 전에 다중 클러스터 작업이 실행 클러스터에서 보류 상태로 유지되는 기간을 판별합니다. 멀티클러스터 작업 전달 모델에서만 사용됩니다.

구문

MAX_RSCHED_TIME=정수 | infinit

설명

원격 제한시간 한계 (초) 는 다음과 같습니다.
MAX_RSCHED_TIME * MBD_SLEEP_TIME=timeout

원격 제한시간을 사용하지 않으려면 infinit 를 지정하십시오. (다중 클러스터 작업은 다시 스케줄되지 않기 때문에 항상 올바른 FCFS 순서로 디스패치되지만 다중 클러스터 작업은 더 나은 큐로 다시 스케줄되지 않고 수신 작업 큐에서 영구적으로 보류될 수 있습니다.)

참고:

제출 클러스터의 큐에 적용됩니다 (전용). 이 매개변수는 수신 큐에서 무시됩니다.

원격 제한시간 한계는 고급 예약 작업에 영향을 주지 않습니다.

고급 예약을 사용하는 작업은 항상 원격 제한시간이 사용 안함으로 설정된 것처럼 작동합니다.

기본값

20 (기본적으로 20분)

MAX_TOTAL_TIME_선취

작업을 다시 선점할 수 없게 되는 누적된 선점 시간을 지정합니다.

구문

MAX_TOTAL_TIME_PREEMPT=

여기서 minutes 는 정규 시간이 아닌 벽시계 시간입니다.

설명

lsb.applications 에서 동일한 이름의 매개변수를 설정하면 이 매개변수를 대체합니다. 이 매개변수를 설정하면 lsb.params에서 동일한 이름의 매개변수를 대체합니다.

유효한 값은

1이상의 양의 정수

기본값

무제한

MC_전달 지연

LSF 멀티클러스터 기능을 사용하는 경우, 작업 전달 동작 및 LSF 에 대한 작업 제출 및 스케줄링 후 기본 작업 전달 동작으로 되돌리는 시간을 지정합니다.

구문

MC_FORWARD_DELAY=[-]

설명

이 값이 양수이면 LSF 는 원격 클러스터에 작업을 전달하지 않고 지정된 시간 (초) 동안만 로컬 호스트를 시도합니다.

이 값이 음수이면 LSF 는 원격 클러스터에 작업을 전달하고 지정된 시간 (초) 동안 로컬 호스트를 시도하지 않습니다.

이 지정된 지연 시간은 LSF 가 작업을 제출하고 스케줄한 후에 시작됩니다. 이 시간이 지나면 이 매개변수는 더 이상 적용되지 않으며 LSF 는 로컬 호스트를 먼저 시도한 후 원격 클러스터에 작업을 전달하는 기본 작업 전달 동작으로 되돌아갑니다 (실패한 경우).

LSFLSFMAX_RSCHED_TIME 매개변수 설정으로 인해 원격 클러스터에서 작업을 재호출한 경우 이 단계를 반복합니다. 또한 LSFLSF 가 작업을 다시 큐에 넣거나, 일시중단하거나, 재개하거나, 스케줄러 디먼이 다시 시작하는 경우에도 이러한 단계를 반복합니다.

유효한 값은

양의 정수 또는 음의 정수입니다. 0으로 설정되면 이 매개변수를 사용할 수 없습니다.

기본값

0. 이 매개변수는 사용 불가능합니다.

memlimit

이 큐의 모든 작업 프로세스에 대한 프로세스당 상주 크기 한계를 지정합니다.

구문

MEMLIMIT=[기본_제한 ] 최대_제한

설명

이 큐의 작업에 속하는 모든 프로세스에 대해 프로세스당 하드 프로세스 상주 세트 크기 한계 (KB) 를 설정하려면 이 매개변수를 설정하십시오 ( getrlimit(2) 참조).

프로세스에 할당될 수 있는 실제 메모리 (상주 세트 크기, RSS) 의 최대 크기를 설정합니다.

기본적으로 기본 메모리 한계가 지정되면 기본 메모리 한계에 도달할 때 작업 레벨 메모리 한계 없이 큐에 제출된 작업이 강제 종료됩니다.

하나의 한계만 지정하는 경우 최대 또는 하드 메모리 한계입니다. 두 개의 한계를 지정하는 경우 첫 번째 한계는 기본 또는 소프트 메모리 한계이고 두 번째 한계는 최대 메모리 한계입니다.

LSF에는 메모리 사용을 강제 실행하는 두 가지 방법이 있습니다.
  • OS 메모리 한계 적용
  • LSF 메모리 한계 적용

OS 메모리 한계 적용

OS 메모리 한계 적용은 기본 MEMLIMIT 동작이며 추가 구성이 필요하지 않습니다. 일반적으로 OS 적용을 사용하면 프로세스가 결국 완료될 때까지 실행될 수 있습니다. LSF는 MEMLIMIT를 시스템 스케줄러 및 메모리 할당기에 대한 안내서로 사용하는 OS에 전달합니다. 잉여가 있는 경우 시스템은 프로세스에 더 많은 메모리를 할당할 수 있습니다. 메모리가 낮으면 시스템은 선언된 MEMLIMIT를 초과한 프로세스의 스케줄링 우선순위 (다시 실행) 에서 메모리를 가져오고 이 우선순위를 낮춥니다. setrlimit()RLIMIT_RSS 를 지원하는 시스템에서만 사용 가능합니다.

지원되지 않는 위치:
  • 썬 솔라리스 2.x
  • <

LSF 메모리 한계 적용

LSF 메모리 한계 적용을 사용하려면 lsf.conf 의 LSB_MEMLIMIT_ENFORCE를 y로 설정하십시오. LSF 메모리 한계 적용은 메모리가 MEMLIMIT를 초과하여 할당되면 실행 중인 프로세스를 강제 종료하는 신호를 명시적으로 전송합니다.

lsf.conf 의 LSB_JOB_MEMLIMIT를 y로 설정하여 LSF 메모리 한계 적용을 사용으로 설정할 수도 있습니다. y로 설정된 LSB_JOB_MEMLIMIT와 y로 설정된 LSB_MEMLIMIT_ENFORCE간의 차이점은 LSB_JOB_MEMLIMIT를 사용하면 LSF에 의해 강제 실행되는 작업당 메모리 한계만 사용 가능하다는 점입니다. OS에 의해 강제 실행되는 프로세스당 메모리 한계가 사용 불가능합니다. LSB_MEMLIMIT_ENFORCE가 y로 설정되면 LSF에 의해 강제 실행되는 작업당 메모리 한계와 OS에 의해 강제 실행되는 프로세스당 메모리 한계가 모두 사용 가능합니다.

LSF가 총 메모리 사용량을 수집하는 모든 시스템에 사용 가능합니다.

다음 구성은 메모리 한계가 5000KB인큐를 정의합니다.
Begin Queue 
QUEUE_NAME  = default 
DESCRIPTION = Queue with memory limit of 5000 kbytes 
MEMLIMIT    = 5000 
End Queue

기본값

무제한

MIG

자동 작업 마이그레이션을 사용으로 설정하고 체크포인트 가능하거나 재실행 가능한 작업에 대한 마이그레이션 임계값을 지정합니다.

구문

MIG=

설명

LSF는 지정된 시간 (분) 을 초과하여 SSUSP 상태에 있는 작업을 자동으로 마이그레이션합니다. 일시중단 시 즉시 작업을 마이그레이션하려면 0값을 지정하십시오. 마이그레이션 임계값은 호스트에서 실행 중인 모든 작업에 적용됩니다.

작업 레벨 명령행 마이그레이션 임계값은 애플리케이션 프로파일 및 큐의 임계값 구성을 대체합니다. 애플리케이션 프로파일 구성이 큐 레벨 구성을 대체합니다.

호스트 마이그레이션 임계값이 지정되고 작업, 큐 또는 애플리케이션의 값보다 낮으면 호스트 값이 사용됩니다.

청크 작업의 멤버를 마이그레이션할 수 있습니다. WAIT 상태의 청크 작업은 작업 청크에서 제거되고 PEND 상태가 됩니다.

리모트 클러스터로 이송되는 복수 클러스터 작업에는 영향을 주지 않습니다.

기본값

정의되지 않음. LSF는 체크포인트 가능하거나 재실행 가능한 작업을 자동으로 마이그레이션하지 않습니다.

새 작업 스케줄된 지연

새 작업이 스케줄되기 전에 대기하는 시간 (초) 을 지정합니다.

구문

NEW_JOB_SCHED_DELAY=

설명

0값은 작업이 지연 없이 스케줄되었음을 의미합니다. 스케줄러는 여전히 주기적으로 mbatchd에서 작업을 페치합니다. 작업을 가져오면 스케줄러가 지연 없이 작업을 스케줄합니다. 이는 작업 스케줄링을 약간 가속화할 수 있지만 일부 통신 오버헤드도 생성합니다. 따라서 작은 워크로드의 높은 우선순위, 긴급 또는 대화식 큐의 경우에만 0으로 설정해야 합니다.

NEW_JOB_SCHED_DELAY 가 0이 아닌 값으로 설정된 경우 스케줄러는 mbatchd에서 새 작업을 주기적으로 페치하며, 이후에 작업 스케줄링 시간을 작업 제출 시간+ NEW_JOB_SCHED_DELAY으로 설정합니다.

기본값

0초

NICE

이 큐의 작업이 실행되는 UNIX 스케줄링 우선순위를 조정합니다.

구문

NICE=정수

설명

기본값 0 (영) 은 UNIX 대화식 작업에 대한 기본 스케줄링 우선순위를 유지합니다. 이 값은 다른 일괄처리 또는 대화식 작업에 미치는 영향을 제어하기 위해 큐별로 일괄처리 작업의 런타임 우선순위를 조정합니다. 가이드라인을nice(1) 자세한 정보는 수동 페이지를 참조하십시오.

Windows에서 이 값은 다음과 같이 Windows 프로세스 우선순위 클래스에 맵핑됩니다.
  • nice>=0우선순위 클래스에 해당합니다.IDLE
  • nice<0우선순위 클래스에 해당합니다.NORMAL

Windows의 LSF가 지원되지 않음HIGH또는REAL-TIME우선순위 클래스.

이 값은 정의된 경우 lsb.applicationsNICE 설정으로 겹쳐씁니다.

기본값

0(제로)

선점 간격 없음

선점 가능한 작업이 선점되기 전에 실행할 수 있는 시간 (분) 을 지정합니다. 선점 가능한 작업의 인터럽트되지 않은 런타임이 지정된 시간보다 긴 경우 선점할 수 있습니다.

구문

NO_PREEMPT_INTERVAL=

minutes 값은 정규 시간이 아닌 벽시계 시간입니다.

설명

NO_PREEMPT_INTERVAL=0 매개변수를 사용하면 작업이 실행을 시작하거나 재개하자마자 즉시 작업을 선점할 수 있습니다.

예를 들어, 작업 A 가 다른 후보 선점 가능한 작업B, CD를 선점해야 하는 경우 NO_PREEMPT_INTERVAL 매개변수는 선점되는 작업을 판별합니다.
  • 작업 B 및 작업 C 의 런타임이 NO_PREEMPT_INTERVAL 매개변수보다 작습니다. 작업 BC 는 선점되지 않습니다.
  • 작업 D 의 런타임이 NO_PREEMPT_INTERVAL 매개변수보다 크거나 같습니다. 작업 D 이 선점됩니다.

lsb.applications 파일에 있는 동일한 이름의 매개변수가 이 매개변수를 대체합니다. 이 매개변수는 lsb.params 파일에서 동일한 이름의 매개변수를 대체합니다.

기본값

0

보류 시간 한계

작업의 보류 시간 한계를 지정합니다.

구문

PEND_TIME_LIMIT=[hour:]

설명

LSF는 큐 레벨 보류 시간 제한 구성을 IBM Spectrum LSF RTM (LSF RTM) 에 전송하며, 이는 알람 및 트리거된 조치 (예: 사용자 알림 (예: 작업을 제출한 사용자 및 LSF 관리자에게 알림) 및 작업 제어 조치 (예: 작업 강제 종료)) 를 처리합니다. LSF RTM 는 작업의 보류 시간을 보류 시간 한계와 비교하고, 작업이 이 지정된 시간 한계보다 오래 보류 중인 경우 LSF RTM 는 알람 및 조치를 트리거합니다. 이 매개변수는 LSF RTM없이 작동하지만 LSF는 다른 알람 조치를 수행하지 않습니다.

다중 클러스터 작업 전달 모드에서 작업의 보류 시간 한계는 실행 클러스터에서 무시되는 반면, 제출 클러스터는 로컬 설정에 따라 작업의 큐, 애플리케이션 및 작업 레벨 보류 시간 한계를 병합합니다.

보류 시간 한계의 양식은 [hour:]minute입니다. 분은 59보다 큰 숫자로 지정할 수 있습니다. 예를 들어, 3시간 반은 3:30또는 210으로 지정할 수 있습니다.

작업 레벨 보류 시간 한계 (bsub -ptl) 는 애플리케이션 레벨 한계 ( lsb.applicationsPEND_TIME_LIMIT ) 를 대체하고 애플리케이션 레벨 한계는 여기에 지정된 큐 레벨 한계를 대체합니다.

기본값

정의되지 않음.

작업 한계

큐에 대한 프로세서당 작업 슬롯 한계를 지정합니다.

구문

PJOB_LIMIT=부동

설명

이 큐가 모든 프로세서에서 사용할 수 있는 최대 작업 슬롯 수입니다. 이 한계는 멀티프로세서 호스트가 자동으로 더 많은 작업을 실행하도록 프로세서당 구성됩니다.

기본값

무제한

PLAN

ALLOCATION_PLANNER 매개변수가 사용으로 설정된 경우에 사용됩니다. 계획 후보인 작업을 식별하는 데 사용됩니다.

구문

PLAN = Y | N | "<key>[value] ..."

설명

LSF에서는 PLAN=Y를 사용하려면 ALLOCATION_PLANNER 매개변수가 사용 가능해야 합니다.

또한 클러스터 및 애플리케이션 레벨에서 정의됩니다. 우선순위는 애플리케이션, 큐, 글로벌입니다. 예를 들어, 애플리케이션 레벨 설정은 큐 레벨 설정을 대체합니다.

다음 키-값 쌍이 지원됩니다.

표 1. PLAN에 대한 키-값 쌍
기본값 설명
지연 양수 - 작업 제출 시간 이후 작업에 대한 계획을 고려하기 전에 지연할 시간 (분) 입니다.
MAX_JOBS 양수 - 동시에 계획을 가질 수 있는 최대 작업 수입니다.
참고:

ALLOCATION_PLANNER 매개변수를 사용하는 경우 PLAN 매개변수는 기존 SLOT_RESERVE 매개변수 및 RESOURCE_RESERVE 매개변수를 대체합니다.

기본값

N

POST 실행

큐 레벨에서 사후 실행 처리를 사용합니다.

구문

POST_EXEC=명령

설명

POST_EXEC 명령은 작업이 완료된 후 실행 호스트에서 실행됩니다. 애플리케이션 및 큐 레벨에서 사후 실행 명령을 구성할 수 있습니다. 애플리케이션 레벨 사후 실행 명령은 큐 레벨 사후 실행 명령 전에 실행됩니다.

POST_EXEC 명령은 작업과 동일한 환경 변수 값을 사용하며 기본적으로 작업을 제출하는 사용자의 사용자 계정으로 실행됩니다. 다른 사용자 계정 (예: 권한 있는 조작의 경우 root ) 에서 사후 실행 명령을 실행하려면 lsf.sudoers에서 LSB_PRE_POST_EXEC_USER 매개변수를 구성하십시오.

작업이 큐의 REQUEUE_EXIT_VALUES중 하나로 종료되면 LSF가 작업을 다시 큐에 넣고 환경 변수 LSB_JOBPEND를 설정합니다. 사후 실행 명령은 다시 큐된 작업이 완료된 후에 실행됩니다.

사후 실행 명령이 실행되면 환경 변수 LSB_JOBEXIT_STAT 가 작업의 종료 상태로 설정됩니다. 작업의 실행 환경을 설정할 수 없는 경우 LSB_JOBEXIT_STAT 는 0 (영) 으로 설정됩니다.

명령 경로에는 최대 4094자 (UNIX및 Linux의 경우) 또는 최대 255자 (Windows의 경우) (%J (job_ID) 및 %I (index_ID) 에 대한 디렉토리, 파일 이름 및 확장 값 포함) 가 포함될 수 있습니다.

UNIX의 경우 :
  • 사전 및 사후 실행 명령은 /bin/sh -c아래의 /tmp 디렉토리에서 실행되며, 이를 통해 명령에서 쉘 기능을 사용할 수 있습니다. 다음 예제는 올바른 구성 라인을 표시합니다.
    PRE_EXEC= /usr/share/lsf/misc/testq_pre >> /tmp/pre.out
    
    POST_EXEC= /usr/share/lsf/misc/testq_post | grep -v "Hey!"
    
  • LSF는 PATH 환경 변수를 다음으로 설정합니다.
    PATH='/bin /usr/bin /sbin /usr/sbin'
    
  • stdin, stdoutstderr/dev/null 로 설정됩니다.
  • UNIX 사용자가 자체 사후 실행 명령을 정의할 수 있도록 하기 위해 LSF 관리자는 환경 변수 $USER_POSTEXECPOST_EXEC 명령으로 지정합니다. 그런 다음 사용자가 사후 실행 명령을 정의합니다.
    setenv USER_POSTEXEC /path_name
    
    주: 사후 실행 명령의 경로 이름은 절대 경로여야 합니다. LSB_PRE_POST_EXEC_USER=root인 경우 POST_EXEC=$USER_POSTEXEC 를 정의하지 마십시오. 이 매개변수는 호스트 기반 사후 실행 처리를 구성하는 데 사용할 수 없습니다.
Windows:
  • 사전 및 사후 실행 명령은 cmd.exe /c 에서 실행됩니다.
  • 표준 입력, 표준 출력 및 표준 오류는 NULL 로 설정됩니다.
  • PATHLSF 서비스의 설정에 의해 판별됩니다.
참고:

Windows Server 2003, x64 Edition 플랫폼에서 실행되는 사후 실행 명령의 경우, 사용자에게 cmd.exe에 대한 읽기 및 실행 권한이 있어야 합니다.

기본값

정의되지 않음. 큐와 연관된 사후 실행 명령이 없습니다.

PRE_EXEC

큐 레벨에서 사전 실행 처리를 사용합니다.

구문

PRE_EXEC=명령

설명

PRE_EXEC 명령은 작업이 시작되기 전에 실행 호스트에서 실행됩니다. PRE_EXEC 명령이 0이 아닌 종료 코드로 종료되는 경우 LSF는 작업을 큐의 앞으로 다시 넣습니다.

큐, 애플리케이션 및 작업 레벨에서 사전 실행 명령을 구성하고 다음 순서로 실행할 수 있습니다.
  1. 큐 레벨 명령
  2. 애플리케이션 레벨 또는 작업 레벨 명령입니다. 애플리케이션 및 작업 레벨 둘 다에서 명령을 지정하면 작업 레벨 명령이 애플리케이션 레벨 명령을 대체합니다. 애플리케이션 레벨 명령은 무시됩니다.

PRE_EXEC 명령은 작업과 동일한 환경 변수 값을 사용하며 작업을 제출하는 사용자의 사용자 계정으로 실행됩니다. 다른 사용자 계정 (예: 권한 있는 조작의 경우 root ) 에서 사전 실행 명령을 실행하려면 lsf.sudoers에서 LSB_PRE_POST_EXEC_USER 매개변수를 구성하십시오.

명령 경로에는 최대 4094자 (UNIX및 Linux의 경우) 또는 최대 255자 (Windows의 경우) (%J (job_ID) 및 %I (index_ID) 에 대한 디렉토리, 파일 이름 및 확장 값 포함) 가 포함될 수 있습니다.

UNIX의 경우 :
  • 사전 및 사후 실행 명령은 /bin/sh -c아래의 /tmp 디렉토리에서 실행되며, 이를 통해 명령에서 쉘 기능을 사용할 수 있습니다. 다음 예제는 올바른 구성 라인을 표시합니다.
    PRE_EXEC= /usr/share/lsf/misc/testq_pre >> /tmp/pre.out
    
    POST_EXEC= /usr/share/lsf/misc/testq_post | grep -v "Hey!"
    
  • LSF는 PATH 환경 변수를 다음으로 설정합니다.
    PATH='/bin /usr/bin /sbin /usr/sbin'
    
  • stdin, stdoutstderr/dev/null 로 설정됩니다.
Windows:
  • 사전 및 사후 실행 명령은 cmd.exe /c 에서 실행됩니다.
  • 표준 입력, 표준 출력 및 표준 오류는 NULL 로 설정됩니다.
  • PATH 는 LSF 서비스의 설정에 의해 판별됩니다.
참고:

Windows Server 2003, x64 Edition 플랫폼에서 실행되는 사전 실행 명령의 경우, 사용자에게 cmd.exe에 대한 읽기 및 실행 권한이 있어야 합니다. 이 매개변수는 호스트 기반 사전 실행 처리를 구성하는 데 사용할 수 없습니다.

기본값

정의되지 않음. 큐와 연관된 사전 실행 명령이 없습니다.

선점

선점형 스케줄링을 사용하고 이 큐를 선점형 또는 선점형으로 정의합니다.

구문

PREEMPTION=PREEMPTIVE[[ low_queue_name [+ 선호도 ] ...] ] PREEMPTION=PREEMPTABLE[[ hi_queue_name...] ] PREEMPTION=PREEMPTIVE[[ low_queue_name [+ 선호도 ] ...] ] PREEMPTABLE [[ hi_queue_name...] ]

설명

강제

선점형 스케줄링을 사용으로 설정하고 이 큐를 선점형으로 정의합니다. 이 큐의 작업은 지정된 낮은 우선순위 큐 또는 매개변수가 큐 이름 없이 지정된 경우 모든 낮은 우선순위 큐의 작업을 선점합니다. PREEMPTIVEPREEMPTABLE 과 결합하여 이 큐의 작업이 낮은 우선순위 큐의 작업을 선점할 수 있고 높은 우선순위 큐의 작업이 선점할 수 있도록 지정할 수 있습니다.

사전 비어 있는 테이블

선점형 스케줄링을 사용으로 설정하고 이 큐를 선점형으로 정의합니다. 이 큐의 작업은 우선순위가 높은 큐가 선점되지 않더라도 지정된 우선순위가 높은 큐 또는 모든 우선순위가 높은 큐의 작업에 의해 선점될 수 있습니다. PREEMPTIVEPREEMPTIVE 과 결합하여 이 큐의 작업이 높은 우선순위 큐의 작업에 의해 선점될 수 있고 낮은 우선순위 큐의 작업을 선점할 수 있도록 지정할 수 있습니다.

낮은 큐 이름

선점할 수 있는 우선순위가 낮은 큐의 이름을 지정합니다.

여러 개의 큐를 지정하려면 큐 이름을 공백으로 구분하고 목록을 대괄호로 묶으십시오.

+사전 레벨

다른 큐를 선점하기 전에 이 큐를 선점하도록 지정합니다. 여러 개의 큐가 환경 설정 레벨로 표시되는 경우, 환경 설정 순서가 표시됩니다. 상대적 환경 설정 레벨이 높은 큐는 상대적 환경 설정 레벨이 낮은 큐가 설정되기 전에 선점됩니다.

하이_큐 이름

이 큐의 작업을 선점할 수 있는 우선순위가 높은 큐의 이름을 지정합니다.

여러 개의 큐를 지정하려면 큐 이름을 공백으로 구분하고 목록을 대괄호로 묶으십시오.

예: 큐에서 선택적, 순서 지정된 선점 구성

다음 예제는 다음과 같이 네 개의 큐를 정의합니다.
  • 높음
    • 가장 높은 상대적 우선순위가 99입니다.
    • 이 큐의 작업은 다른 모든 큐의 작업을 선점할 수 있습니다.
  • 중간
    • 두 번째로 높은 상대적 우선순위가 10입니다.
    • 이 큐의 작업은 다음에서 작업을 선점할 수 있습니다.normallow대기행렬, 작업으로 시작low환경 설정으로 표시된 대로 (+1)
  • 정상
    • 두 번째로 가장 낮은 상대적 우선순위 (5) 를 갖습니다.
    • 이 큐의 작업은 다음에서 작업을 선점할 수 있습니다.low, 두 작업 모두에서 작업에 의해 선점될 수 있습니다.highmedium
  • 낮음
    • 1에서 기본 우선순위이기도 한 가장 낮은 상대적 우선순위를 갖습니다.
    • PREEMPTABLE 키워드가 설정되지 않은 경우에도 이 큐의 작업은 모든 선점형 큐의 작업에 의해 선점될 수 있습니다.
Begin Queue
QUEUE_NAME=high
PREEMPTION=PREEMPTIVE
PRIORITY=99
End Queue
Begin Queue
QUEUE_NAME=medium
PREEMPTION=PREEMPTIVE[normal low+1]
PRIORITY=10
End Queue
Begin Queue
QUEUE_NAME=normal
PREEMPTION=PREEMPTIVE[low]
PREEMPTABLE[high medium]
PRIORITY=5
End Queue
Begin Queue
QUEUE_NAME=low
PRIORITY=1
End Queue

선점 지연

선점 작업은 우선순위가 낮은 선점 가능한 작업을 선점하기 전에 제출 시간부터 지정된 시간 (초) 동안 대기합니다.

구문

PREEMPT_DELAY=

설명

유예 기간 동안 선점은 트리거되지 않지만 작업은 다른 스케줄링 정책에 의해 스케줄되고 디스패치될 수 있습니다.

이 기능은 선점 수를 줄이기 위해 시스템을 조정하는 유연성을 제공할 수 있습니다. 성능 및 작업 처리량을 향상시키는 데 유용합니다. 낮은 우선순위 작업이 짧을 때 높은 우선순위 작업이 낮은 우선순위 작업이 완료될 때까지 잠시 대기할 수 있는 경우 선점을 방지하고 클러스터 성능을 개선할 수 있습니다. 유예 기간이 만료된 후에도 작업이 계속 보류 중이면 선점이 트리거됩니다.

대기 시간은 보류 중 상태의 우선 작업만을 위한 시간입니다. 이는 중단된 선제 작업에는 영향을 주지 않습니다.

시간은 작업의 제출 시간에서 계산됩니다. 제출 시간은 mbatchd 가 새로 제출된 작업, 다시 시작된 작업 ( brestart에 의해) 또는 원격 클러스터에서 전달된 작업을 포함하는 작업을 승인하는 시간을 의미합니다.

선점 작업이 대기 중인 경우 보류 이유는 다음과 같습니다.

선점 작업은 선점 전에 유예 기간을 허용합니다.

bjobs의 이전 버전을 사용하는 경우 보류 이유는 다음과 같습니다.

알 수 없는 보류 중인 이유 코드 < 6701 >;

이 매개변수는 lsb.params, lsb.queues ( lsb.params대체) 및 lsb.applications ( lsb.paramslsb.queues모두 대체) 에 정의되어 있습니다.

badmin reconfig 를 실행하여 변경사항을 적용하십시오.

기본값

정의되지 않음 (매개변수가 어디에도 정의되지 않은 경우 선점이 즉시 수행됨).

PRIORITY

디스패치 작업에 대한 상대 큐 우선순위를 지정합니다. 높은 값은 다른 큐에 비해 높은 작업 디스패치 우선순위를 표시합니다.

구문

PRIORITY=정수

설명

LSF는 우선순위가 가장 높은 큐에서 시작하여 한 번에 하나의 큐에서 작업을 스케줄합니다. 여러 큐의 우선순위가 동일한 경우 LSF는 이러한 큐의 모든 작업을 선입선출 (FIFO) 순서로 스케줄합니다.

LSF큐 우선순위는 시간 공유 프로세스에 대한 UNIX 스케줄러 우선순위 시스템과 무관합니다. LSF에서 NICE 매개변수는 일괄처리 작업에 대한 UNIX 시간 공유 우선순위를 설정하는 데 사용됩니다.

정수

1보다 크거나 같은 숫자를 지정하십시오. 여기서 1은 가장 낮은 우선순위입니다.

기본값

1

프로세스 한계

작업의 일부가 될 수 있는 동시 프로세스 수를 제한합니다.

구문

PROCESSLIMIT=[기본_한도 ] 최대_한도

설명

기본적으로 기본 프로세스 한계가 지정되면 기본 프로세스 한계에 도달할 때 작업 레벨 프로세스 한계 없이 큐에 제출된 작업이 강제 종료됩니다.

하나의 한계만 지정하는 경우 최대 또는 하드 프로세스 한계입니다. 두 개의 한계를 지정하는 경우 첫 번째 한계는 기본 또는 소프트 프로세스 한계이고 두 번째 한계는 최대 프로세스 한계입니다.

기본값

무제한

큐 작업 한계

큐에 대한 작업 슬롯 한계를 지정합니다.

구문

QJOB_LIMIT=정수

설명

이 매개변수는 이 큐가 사용할 수 있는 총 작업 슬롯 수를 지정합니다.

기본값

무제한

큐 그룹

여러 큐에서 절대 우선순위 스케줄링 (APS) 을 구성합니다.

구문

QUEUE_GROUP=queue1, queue2 ...

설명

APS_PRIORITY를 사용하여 큐에서 APS가 사용으로 설정되면 FAIRSHARE_QUEUES 매개변수가 무시됩니다. QUEUE_GROUP 매개변수는 LSF 7.0에서 더 이상 사용되지 않는 FAIRSHARE_QUEUES를 대체합니다.

기본값

정의되지 않음

QUEUE_NAME

필수입니다. 큐의 이름을 지정합니다.

구문

QUEUE_NAME=문자열

설명

최대 59자의 ASCII 문자열을 지정하십시오. 문자, 숫자, 밑줄 (_) 또는 대시 (-) 를 사용할 수 있습니다. 공백을 사용할 수 없습니다. 예약된 이름을 지정할 수 없습니다.default.

기본값

큐를 정의하려면 이 매개변수를 지정해야 합니다. LSF에 의해 자동으로 작성된 디폴트 큐의 이름은 다음과 같습니다.default.

RC 계정

다른 사용자 그룹, 사용자 또는 작업에서 사용할 수 없도록 LSF 자원 커넥터를 통해 빌려온 호스트에 계정 이름 (태그) 을 지정합니다.

구문

RC_ACCOUNT=계정 이름

설명

RC_ACCOUNT 매개변수가 지정된 큐에 작업이 제출되면 작업을 실행하기 위해 빌려온 호스트에 RC_ACCOUNT 매개변수의 값으로 태그가 지정됩니다. 빌려온 호스트는 RC_ACCOUNT 매개변수의 값이 다른 (또는 RC_ACCOUNT 매개변수가 정의되지 않은) 다른 큐에서 사용할 수 없습니다.

빌려온 호스트가 클러스터를 결합한 후 lshosts -s 명령을 사용하여 호스트에 대한 RC_ACCOUNT 매개변수의 값을 보십시오.

RC_ACCOUNT=project1

기본값

문자열 "default" - 의미, 큐에 대한 계정이 정의되지 않았습니다.

RC_요구_정책

대기열의 모든 작업에 대해 자원 커넥터를 통해 자원을 빌리기 위해 요구가 트리거되는지 여부를 판별하기 위한 임계값 조건을 정의합니다. 큐에서 보류 중인 작업이 하나 이상의 임계값 조건을 충족하는 한, LSF 는 빌려오기를 트리거하기 위해 자원 커넥터에 대한 요청을 표현합니다.

구문

RC_DEMAND_POLICY = THRESHOLD[ [ num_pend_jobs[,지속 기간]] ... ]

설명

RC_DEMAND_POLICY 매개변수로 정의된 수요 정책은 OR 관계에서 여러 조건을 포함할 수 있습니다. 조건은 [ num_pend_jobs[,duration]]으로 정의됩니다. 큐에 최소한 지정된 지속 기간 (분) 에 실행될 것으로 예상되는 지정된 수 이상의 적합한 보류 중인 작업이 있습니다. num_pend_jobs 옵션은 필수이며 지속 기간은 선택적입니다. 기본 지속 기간은 0분입니다.

LSF 는 정책에 대해 적합한 보류 중인 작업을 고려합니다. 부적합한 보류 중인 작업 (예: 작업 종속성이 아직 충족되지 않음) 은 호스트가 사용 가능하다고 생각되더라도 보류 중인 상태를 유지합니다. 이 정책은 작업에 필요한 태스크 또는 슬롯 수에 상관없이 적격성에 대한 작업을 계수합니다. 각 작업 요소는 작업으로 계산됩니다. LSF 가 빌려온 자원을 크기 조정 가능한 작업에 할당할 수 있지만 크기 조정 가능한 작업에 대한 보류 중인 요청은 계수되지 않습니다.

LSF 는 각 수요 계산 주기에서 정책을 평가하고 num_pend_jobs 옵션이 충족되면 지속 기간을 누적합니다. mbschd 디먼은 재시작할 때 또는 지난 2분이내에 조건이 평가되지 않은 경우 조건의 지속 기간을 재설정합니다. 예를 들어, 클러스터에 보류 중인 작업이 없는 경우 2분 동안 mbschd 는 이를 평가하는 것을 중지합니다.

다음 예에서 LSF 는 큐에 지난 10분 동안 5개이상의 보류 중인 작업이 있거나 지난 60분 동안 하나 이상의 보류 중인 작업이 있거나 100개이상의 보류 중인 작업이 있는 경우 요청을 계산합니다.
RC_DEMAND_POLICY = THRESHOLD[ [ 5, 10] [1, 60] [100] ]

기본값

큐에 대해 정의되지 않음

RC 호스트

LSF 자원 커넥터가 자원 제공자에서 특정 호스트 유형을 빌려올 수 있도록 합니다.

구문

RC_HOSTS=string

RC_HOSTS = none | all | 호스트_유형 [호스트_유형...]

설명

host_type 플래그는 lsf.conf 파일의 LSB_RC_EXTERNAL_HOST_FLAG 매개변수에 정의된 호스트 자원 목록의 멤버인 부울 자원입니다.

RC_HOSTS 매개변수가 큐에 정의되지 않은 경우 기본값은 none입니다. LSB_RC_EXTERNAL_HOST_FLAG 매개변수가 lsf.conf 파일에 정의된 경우에도 RC_HOSTS=none를 명시적으로 정의하는 큐에 대해 빌려오기가 사용 안함으로 설정됩니다.

RC_HOSTS 매개변수가 큐에 정의되어 있지 않으면 작업에 대해 빌려오기가 발생할 수 없습니다.

참고: lsb.queues 파일의 HOSTS 매개변수 및 bsub -m 옵션은 자원 커넥터를 통해 관리되는 호스트에 적용되지 않습니다. 대기열에서 사용할 수 있는 자원 커넥터 호스트 유형을 지정하려면 해당 대기열에서 RC_HOSTS 매개변수를 지정해야 합니다.

RC_HOSTS=awshost

기본값

none -자원 제공자에서 빌려온 호스트를 사용할 수 없으며 큐에서 빌려온 호스트를 사용할 수 없습니다.

RCVJOBS_FROM

LSF 멀티클러스터 기능에 대한 수신 작업 큐를 정의합니다.

구문

RCVJOBS_FROM=클러스터_이름... | allclusters

설명

공백으로 구분된 클러스터 이름을 지정하십시오. 각 원격 클러스터의 관리자는 해당 클러스터의 어떤 큐가 로컬 클러스터로 작업을 전달하는지 판별합니다.

실행 클러스터에서 LSF 데이터 관리자 데이터 전송 큐를 원격 송신 작업 큐로 사용으로 설정한 경우 (즉, 제출 클러스터의 큐를 실행 클러스터의 lsb.queues 파일에 있는 SNDJOBS_TO 매개변수에 추가한 경우), 해당 제출 클러스터의 RCVJOBS_FROM 매개변수에 실행 클러스터를 포함해야 합니다.

원격 클러스터를 지정하려면 allclusters 키워드를 사용하십시오.

다음 큐는 클러스터 2, 4및 6의 원격 작업을 승인합니다.

RCVJOBS_FROM=cluster2 cluster4 cluster6

LSF Data Manager의 예

실행 클러스터 clusterE 에서 LSF 데이터 관리자 전송 큐 data_transferclusterE 클러스터에 대한 다음 구성에 따라 제출 클러스터 clusterSreceive_q 큐에 대한 원격 송신 작업 큐로 설정된 경우:

Begin Queue
QUEUE_NAME=data_transfer
DATA_TRANSFER=Y
SNDJOBS_TO=receive_q@clusterS
HOSTS=hostS1 hostS2 # Transfer nodes in the execution cluster
End Queue

clusterS 클러스터에 대한 다음 구성에 표시된 대로 실행 클러스터 clusterE에서 작업을 승인 (및 데이터를 실행 클러스터로 푸시) 하려면 제출 클러스터 clusterSreceive_q 큐에 대해 RCVJOBS_FROM 매개변수를 정의해야 합니다.

Begin Queue
QUEUE_NAME=receive_q
RCVJOBS_FROM=clusterE
PRIORITY=40
HOSTS=hostS1 hostS2 # Transfer nodes in the submission cluster
RES_REQ=select[type==any]
End Queue

또는 실행 클러스터를 포함하는 모든 클러스터의 작업을 승인하도록 RCVJOBS_FROM=allclusters 를 정의할 수 있습니다.

릴렉스_잡_파견_주문

클러스터 활용도를 향상시키기 위해 LSF가 표준 작업 우선순위 정책에서 벗어날 수 있도록 합니다.

구문

RELAX_JOB_DISPATCH_ORDER=Y | y | N | n | ALLOC_REUSE_DURATION[ [ 최소 ] 최대] [SHARE[ [user ] [group ] [project ]] ]

설명

이 매개변수를 사용하는 경우, LSF는 공통 자원 요구사항이 있는 여러 작업이 동일한 할당에서 연속적으로 실행되도록 허용합니다. 작업이 완료될 때마다 LSF는 동일한 자원 요구사항이 있는 보류 중인 작업으로 신속하게 대체하려고 시도합니다. 한계가 위반되지 않도록 하기 위해 LSF는 동일한 사용자에 속하고 공통적으로 다른 속성을 갖는 보류 중인 작업을 선택합니다.

LSF는 작업 간에 대부분의 표준 스케줄링 논리를 생략하므로 자원 할당을 재사용하면 클러스터 활용도를 향상시키는 데 도움이 될 수 있습니다. 이러한 개선은 몇 개의 더 짧은 작업 (즉, 몇 초에서 몇 분까지 실행되는 작업) 이 있는 클러스터에서 가장 명확합니다.

표준 작업 우선순위 지정 정책이 대략적인 것인지 확인하기 위해 각 할당이 재사용 가능한 기간에 대한 제한이 있습니다. LSF는 높은 레벨의 자원 이용률을 달성하기 위해 이 시간 한계를 자동으로 설정합니다. 기본적으로 이 재사용 시간은 30분을 초과할 수 없습니다. 최대 재사용 시간 및 선택적 최소 재사용 시간을 지정하는 경우 ( ALLOC_REUSE_DURATION사용), LSF는 이 지정된 범위 내에서 시간 한계를 조정하여 최상위 레벨의 자원 이용률을 달성합니다.

SHARE[] 키워드를 사용하여 완료된 작업의 자원 할당을 재사용할 수 있는 보류 중인 작업 유형의 제한조건을 추가로 완화할 수 있습니다. 그러면 더 많은 작업이 자원 할당을 재사용할 수 있지만 이러한 한계 및 정책이 완화되어 자원 제한 및 정책이 일시적으로 위반될 수 있습니다. SHARE[] 키워드는 완료된 작업의 자원 할당을 재사용할 수 있는 보류 중인 작업을 판별할 때 mbatchd 디먼이 더 이상 적용하지 않아도 되는 제한조건을 지정합니다. 작업이 완료되고 LSF 가 공통적으로 동일한 사용자 또는 기타 속성을 갖는 보류 중인 작업을 찾지 못하는 경우 LSFSHARE[] 키워드의 스펙을 고려합니다. SHARE[] for LSF 내에서 다음 키워드 중 하나 이상을 지정하여 다음과 같은 보류 중인 작업도 고려하십시오.
사용자
완료된 작업과 동일한 작업 소유자가 없는 보류 중인 작업입니다.
그룹
완료된 작업과 동일한 적정 공유 그룹 (bsub -G 명령 옵션) 과 연관되지 않은 보류 중인 작업입니다.
프로젝트
완료된 작업과 동일한 프로젝트에 지정되지 않은 보류 중인 작업 (bsub -P 명령 옵션).
LSF 멀티클러스터 기능을 사용하는 경우 SHARE[] 는 작업 전달 모드에만 적용됩니다.

정의되지 않은 경우 동일한 이름의 lsb.params 매개변수에서 클러스터 전체 값이 사용됩니다.

  • RELAX_JOB_DISPATCH_ORDER=Y
    

    완료된 작업의 자원 할당은 0-30분 사이에 재사용할 수 있습니다.

  • RELAX_JOB_DISPATCH_ORDER=ALLOC_REUSE_DURATION[45]

    완료된 작업의 자원 할당은 0-45분동안 재사용할 수 있습니다.

  • RELAX_JOB_DISPATCH_ORDER=ALLOC_REUSE_DURATION[5 45]

    완료된 작업의 자원 할당은 5분에서 45분까지 재사용할 수 있습니다.

  • RELAX_JOB_DISPATCH_ORDER=SHARE[user]

    완료된 작업의 자원 할당은 0-30분 사이에 재사용할 수 있습니다. 동일한 공통 속성을 갖는 보류 중인 작업이 없는 경우, 다른 사용자에 속하는 보류 중인 작업도 자원 할당을 재사용할 수 있습니다.

  • RELAX_JOB_DISPATCH_ORDER=SHARE[user group]

    완료된 작업의 자원 할당은 0-30분 사이에 재사용할 수 있습니다. 동일한 공통 속성을 갖는 보류 중인 작업이 없는 경우, 다른 사용자에 속하고 다른 적정 공유 그룹과 연관된 보류 중인 작업도 자원 할당을 재사용할 수 있습니다.

  • RELAX_JOB_DISPATCH_ORDER=ALLOC_REUSE_DURATION[45] SHARE[user group]

    완료된 작업의 자원 할당은 0-45분동안 재사용할 수 있습니다. 동일한 공통 속성을 갖는 보류 중인 작업이 없는 경우, 다른 사용자에 속하고 다른 적정 공유 그룹과 연관된 보류 중인 작업도 자원 할당을 재사용할 수 있습니다.

기본값

정의되지 않음.

원격 최대 사전 실행 재시도

원격 클러스터에서 작업의 사전 실행 명령을 시도하는 최대 횟수를 정의합니다. 멀티클러스터 작업 전달 모델에서만 사용됩니다.

구문

REMOTE_MAX_PREEXEC_RETRY=정수

설명

이 매개변수는 실행 클러스터에 적용됩니다.

유효한 값은

0-INFINIT_INT

INFINIT_INT는 lsf.h에 정의됩니다.

기본값

5

요청 종료 값

자동 작업 리큐를 사용하고 LSB_EXIT_REQUEUE 환경 변수를 설정합니다.

구문

REQUEUE_EXIT_VALUES=[exit_code...] [EXCLUDE(exit_code...)]

설명

여러 종료 코드를 구분하려면 공백을 사용하십시오. 애플리케이션 레벨 엑시트 값은 큐 레벨 값을 대체합니다. 작업 레벨 종료 값 (bsub -Q) 은 애플리케이션 레벨 및 큐 레벨 값을 대체합니다.

exit_code 의 양식은 다음과 같습니다.
"[all] [~number ...] | [number ...]"

예약된 키워드 all 은 모든 종료 코드를 지정합니다. 종료 코드는 일반적으로 0-255사이입니다. 지정된 종료 코드를 목록에서 제외하려면 틸드 (~) 를 사용하십시오.

작업이 큐의 헤드에 다시 삽입됩니다. 실패한 실행의 출력은 저장되지 않으며 LSF가 사용자에게 알리지 않습니다.

독점 작업 리큐를 사용하려면 종료 코드를 EXCLUDE (exit_code) 로 정의하여 작업이 samehost에서 다시 실행되지 않도록 하십시오. 배타적 작업 리큐는 병렬 작업에 대해 작동하지 않습니다.

원격 실행 클러스터에 전달된 다중 클러스터 작업의 경우, EXCLUDE 키워드를 사용하여 제출 클러스터에 지정된 종료 값은 비독점적인 것처럼 처리됩니다.

작업이 신호에 의해 종료되는 경우에도 작업을 다시 큐에 넣을 수 있습니다.

작업이 신호에 의해 종료되면 종료 값은 128+signal_value입니다. 128과 신호 값의 합계는 REQUEUE_EXIT_VALUES 매개변수에서 종료 코드로 사용할 수 있습니다.

예를 들어, 작업이 신호 9 (SIGKILL) 로 kill되는 경우 작업을 재실행하려는 경우 종료 값은 128+9 = 137입니다. 다음 리큐 종료 값을 구성하여 신호 9에 의해 강제 종료된 경우 작업이 리큐될 수 있도록 할 수 있습니다.

REQUEUE_EXIT_VALUES=137

Windows에서 작업이 신호에 의해 kill되는 경우 종료 값은 signal_value입니다. 신호 값은 REQUEUE_EXIT_VALUES 매개변수에서 종료 코드로 사용할 수 있습니다.

예를 들어, 신호 7 (SIGKILL) 로 kill된 후에 작업을 재실행하려는 경우 종료 값은 7입니다. 다음 리큐 종료 값을 구성하여 작업이 신호 7에 의해 종료된 후에 리큐할 수 있도록 할 수 있습니다.

REQUEUE_EXIT_VALUES=7

작업이 강제 종료된 후 Linux 및 Windows 모두에 대해 큐에 다시 넣을 수 있도록 다음 큐에 다시 넣기 종료 값을 구성할 수 있습니다.

REQUEUE_EXIT_VALUES=137 7

mbatchd 가 다시 시작되면 작업이 독점 리큐 종료 코드로 종료된 이전 호스트를 기억하지 못합니다. 이 상황에서는 작업이 이전에 독점 종료 코드로 종료된 호스트에 작업을 디스패치할 수 있습니다.

인터럽트 가능한 백필 큐에 대해 REQUEUE_EXIT_VALUES를 구성해야 합니다 (INTERRUPTIBLE_BACKFILL=seconds).

REQUEUE_EXIT_VALUES=30 제외 (20)

종료 코드가 30인 작업은 리큐되고 종료 코드가 20인 작업은 배타적으로 리큐되며 다른 종료 코드가 있는 작업은 리큐되지 않음을 의미합니다.

기본값

정의되지 않음. 작업이 다시 큐에 넣어지지 않습니다.

다시 실행 가능

이 큐의 작업에 대해 자동 재실행을 사용합니다.

구문

RERUNNABLE=yes | no

설명

예로 설정하면 자동 작업 재실행 (재시작) 을 사용합니다.

RERUNNABLE이 no로 설정되면 재실행이 사용 불가능합니다. yesno 인수는 대소문자를 구분하지 않습니다.

다중 클러스터 작업의 경우 제출 큐의 설정이 사용되고 실행 큐의 설정은 무시됩니다.

청크 작업의 구성원은 재실행 가능할 수 있습니다. 실행 호스트를 사용할 수 없게 되면 재실행 가능한 청크 작업 멤버가 작업 청크에서 제거되고 다른 실행 호스트로 디스패치됩니다.

기본값

아니오

자원 예약

이 큐에 대해 보류 중인 작업에 대한 프로세서 예약 및 메모리 예약을 사용합니다.

구문

RESOURCE_RESERVE=MAX_RESERVE_TIME[정수]

설명

작업이 작업 슬롯 및 메모리를 예약할 수 있는 디스패치 회전 수 (MAX_RESERVE_TIME) 를 지정합니다.

SLOT_RESERVE 매개변수를 대체합니다. RESOURCE_RESERVE및 SLOT_RESERVE가 모두 동일한 큐에 정의된 경우 클러스터가 재구성되면 오류가 표시되고 SLOT_RESERVE는 무시됩니다. 자원 예약 및 병렬 일괄처리 작업 (schmod_parallelschmod_reserve) 모두에 대한 LSF 스케줄러 플러그인 모듈 이름이 lsb.modules 파일에 구성된 경우 RESOURCE_RESERVE가 병렬 작업에 대한 작업 슬롯 예약을 사용합니다. schmod_parallel 이름은 반드시 lsb.modules에서 schmod_reserve 앞에 와야 합니다.

작업이 MAX_RESERVE_TIME이 만료될 때까지 시작하기에 충분한 메모리 또는 작업 슬롯을 누적하지 않은 경우 보류 중인 다른 작업을 실행할 수 있도록 모든 예약된 작업 슬롯 또는 메모리를 해제합니다. 예약 시간이 만료된 후에는 작업이 하나의 스케줄링 세션에 대해 메모리 또는 슬롯을 예약할 수 없으므로 다른 작업을 디스패치할 수 있습니다. 하나의 스케줄링 세션 후에 작업은 MAX_RESERVE_TIME으로 지정된 다른 기간 동안 사용 가능한 메모리 및 작업 슬롯을 다시 예약할 수 있습니다.

BACKFILL이 큐에 구성되어 있고 실행 한계가 -W on bsub 또는 큐의 RUNLIMIT로 지정된 경우, 백필 작업은 예약이 있는 작업의 예상 시작 시간 이전에 백필 작업이 완료될 수 있는 한 큐의 다른 작업에 의해 예약된 누적 메모리를 사용할 수 있습니다.

병렬 작업에만 적용되는 슬롯 예약과 달리 메모리 예약 및 메모리 백필은 순차 및 병렬 작업에 적용됩니다.

RESOURCE_RESERVE=MAX_RESERVE_TIME[5]

이 예제는 작업이 충분한 작업 슬롯 또는 메모리 (기본적으로 5분) 를 예약하기 위해 최대 5개의 디스패치 전환을 갖도록 지정합니다.

기본값

정의되지 않음. 작업 슬롯 또는 메모리가 예약되어 있지 않습니다.

요청

적합한 호스트를 판별하는 데 사용되는 자원 요구사항을 지정합니다.

구문

RES_REQ=res_req

설명

자원 요구사항 문자열을 평소와 같이 지정하십시오. 자원 요구사항 문자열을 사용하면 로드 임계값을 사용하는 것보다 더 유연한 방식으로 조건을 지정할 수 있습니다. 자원 요구사항 문자열은 단순 (전체 작업에 적용), 복합 (지정된 슬롯 수에 적용) 또는 대체 자원 (둘 이상의 단순 및/또는 복합 사이의 대체) 을 포함할 수 있습니다. 대체 자원의 경우, 첫 번째 자원 요구사항을 충족하는 첫 번째 자원을 찾을 수 없으면 다음 자원 요구사항이 시도되는 식으로 요구사항이 충족될 때까지 시도됩니다.

복합 및 대체 자원 요구사항은 자원 요구사항이 작업, 애플리케이션 및 큐 레벨 간에 병합되는 방법을 판별하기 위해 동일한 규칙 세트를 따릅니다.

큐에 대해 복합 또는 대체 자원 요구사항이 설정된 경우, 지정된 유일한 자원 요구사항이 아닌 한 무시됩니다 (작업 레벨 또는 애플리케이션 레벨에서 자원 요구사항이 설정되지 않음).

단순 자원 요구사항이 큐에 대해 설정되고 복합 자원 요구사항이 작업 레벨 또는 애플리케이션 레벨에서 설정되는 경우, 큐 레벨 요구사항은 단순 자원 요구사항에 대해 수행하는 것처럼 병합됩니다. 그러나 큐에 정의된 모든 작업 기반 자원은 병합된 복합 자원 요구사항의 첫 번째 용어에만 적용됩니다.

선택 섹션의 자원 요구사항 문자열은 보다 엄격한 구문을 준수해야 합니다. 엄격한 자원 요구사항 구문은 select 섹션에만 적용됩니다. 다른 자원 요구사항 섹션 (order, rusage, 동일, span, cu 또는 affinity) 에는 적용되지 않습니다. LSF는 rusage 섹션에 사용할 수 없는 자원이 포함된 자원 요구사항 문자열을 거부합니다.

단순 자원 요구사항의 경우,select모든 레벨의 섹션이 충족되어야 하며 모든 레벨의 동일한 섹션이 결합되어야 합니다. 작업 레벨의 cu, orderspan 섹션은 큐 레벨의 섹션을 겹쳐쓰는 애플리케이션 레벨의 섹션을 겹쳐씁니다. 여러 rusage 정의가 병합되며 작업 레벨 rusage 가 애플리케이션 레벨보다 우선하고 애플리케이션 레벨이 큐 레벨보다 우선합니다.

단순 자원 요구사항rusage섹션은 추가 요청을 지정할 수 있습니다. 이를 수행하려면OR(||) 추가로 분리할 연산자rusage문자열. 다중 -R 옵션은 다중 단계 rusage 자원 요구사항과 함께 사용할 수 없습니다.

단순 자원 요구사항의 경우 작업 레벨 선호도 섹션은 애플리케이션 레벨을 대체하고 애플리케이션 레벨 선호도 섹션은 큐 레벨을 대체합니다.

참고:
  • 복합 및 대체 자원 요구사항은 rusage 섹션 또는 cu 섹션 내에서 | | 연산자의 사용을 지원하지 않습니다.
  • RES_REQ 이용 가능 자원 요구사항은 lsb.queuesRESRSV_LIMIT 매개변수로 설정된 한계를 충족해야 합니다. 그렇지 않으면 RES_REQ 가 무시됩니다.
  • 이용 가능한 자원에 대해 RES_REQRESRSV_LIMIT 가 둘 다 lsb.queues 에 설정된 경우 큐 레벨 RES_REQ 는 더 이상 병합된 RES_REQ 에 대한 하드 한계로 작동하지 않습니다.rusage값을 표시합니다. 이 경우 RESRSV_LIMIT 에 의해 설정된 한계만 충족되어야 하며 큐 레벨 RES_REQ가 기본값으로 작동합니다.
예를 들어,
큐 레벨 RES_REQ:
RES_REQ=rusage[mem=200:lic=1] ...
작업 제출의 경우:
bsub -R'rusage[mem=100]' ...
작업에 대한 결과 요구사항은 다음과 같습니다.
rusage[mem=100:lic=1]

여기서,mem=100작업 대체에 의해 지정됨mem=200큐에 의해 지정됩니다. 하지만,lic=1작업이 큐를 지정하지 않기 때문에 큐에서 유지됩니다.

큐 레벨 RES_REQ 임계값:
RES_REQ = rusage[bwidth =2:threshold=5] ...
작업 제출의 경우:
bsub -R "rusage[bwidth =1:threshold=6]" ...

작업에 대한 결과 요구사항은 다음과 같습니다.

rusage[bwidth =1:threshold=6]
감쇠 및 지속 기간이 정의된 큐 레벨 RES_REQ:
RES_REQ=rusage[mem=200:duration=20:decay=1] ...
감소 또는 지속 기간이 없는 작업 제출의 경우:
bsub -R'rusage[mem=100]' ...
작업에 대한 결과 요구사항은 다음과 같습니다.
rusage[mem=100:duration=20:decay=1]

큐 레벨 지속 기간 및 감소는 작업 레벨 스펙과 병합됩니다.mem=100작업 대체에 대한mem=200큐에 의해 지정됩니다. 하지만,duration=20decay=1작업이 지정하지 않기 때문에 큐에서 유지됩니다.

자원 예약 메소드가 있는 큐 레벨 RES_REQ:
RES_REQ=rusage[mem=200/host:duration=20:decay=1] ...
감소 또는 지속 기간이 없는 작업 제출의 경우:
bsub -R'rusage[mem=100/task]' ...
작업에 대한 결과 요구사항은 다음과 같습니다.
rusage[mem=100/task:duration=20:decay=1]
다단계 작업 레벨 rusage가 있는 큐 레벨 RES_REQ:
RES_REQ=rusage[mem=200:duration=20:decay=1] ...
감소 또는 지속 기간이 없는 작업 제출의 경우:
bsub -R'rusage[mem=(300 200 100):duration=(10 10 10)]' ...
작업에 대한 결과 요구사항은 다음과 같습니다.
rusage[mem=(300 200 100):duration=(10 10 10)]
작업 제출의 다중 단계 rusage 값은 큐에서 지정한 단일 단계를 겹쳐씁니다.
  • RESRSV_LIMITlsb.queues 에 정의되고 최대 메모리 한계가 300MB이상인 경우 이 작업이 허용됩니다.
  • RESRSV_LIMITlsb.queues 에 정의되어 있고 최대 메모리 한계가 300MB미만인 경우 이 작업은 거부됩니다.
  • RESRSV_LIMITlsb.queues 에 정의되어 있지 않고 큐 레벨 RES_REQ 값 200MB가 상한으로 작동하는 경우, 이 작업은 거부됩니다.
큐 레벨 다단계 rusage RES_REQ:
RES_REQ=rusage[mem=(350 200):duration=(20):decay=(1)] ...
감쇠 또는 지속 기간이 없는 단일 단계 작업 제출의 경우:
bsub -q q_name -R'rusage[mem=100:swap=150]' ...
작업에 대한 결과 요구사항은 다음과 같습니다.
rusage[mem=100:swap=150]

작업 레벨 rusage 문자열은 큐 레벨 다단계 rusage 문자열을 대체합니다.

다음order작업 레벨에서 정의된 섹션은 애플리케이션 레벨 또는 큐 레벨에서 지정된 모든 자원 요구사항을 겹쳐씁니다. 다음order애플리케이션 레벨에서 정의된 섹션은 큐 레벨에서 지정된 모든 자원 요구사항을 겹쳐씁니다. 기본값은order문자열r15s:pg.

RES_REQ가큐 레벨에서 정의되고 정의된 로드 임계값이 없는 경우, 각 개별 로드 인덱스의 보류 이유는 bjobs에 의해 표시되지 않습니다.

다음span큐 레벨에서 정의된 섹션은 다음과 같은 경우 무시됩니다.span섹션은 작업 레벨 또는 애플리케이션 프로파일에서도 정의됩니다.

참고: 애플리케이션 프로파일 또는 bsub -R 자원 요구사항 문자열에 span [hosts=-1] 을 정의하여 큐의 span 섹션 설정을 대체하십시오.

기본값

[type == local] order [r15s:pg] 를 선택하십시오. 이 매개변수가 정의되고 호스트 모델 또는 부울 자원이 지정된 경우 기본 유형은 any입니다.

예약 제한

RES_REQ 자원에 허용되는 값의 범위를 설정합니다.

구문

RESRSV_LIMIT=[res1= {min1,} max1] [res2= {min2,} max2] ...

여기서 res 는 소모성 자원 이름이고, min 은 선택적 최소값이며, max 는 허용되는 최대값입니다. maxmin 은 둘 다 0-2147483647사이의 부동 소수점 수여야 하며, minmax보다 클 수 없습니다.

설명

큐 레벨 RES_REQ rusage 값 ( lsb.queues에 설정됨) 은 RESRSV_LIMIT에 의해 설정된 범위 내에 있어야 합니다. 그렇지 않으면 큐 레벨 RES_REQ 이 무시됩니다. 병합됨 RES_REQrusage작업 및 애플리케이션 레벨의 값은 RESRSV_LIMIT범위 내에 있어야 합니다. 그렇지 않으면 작업이 거부됩니다.

bmod -R 를 사용하여 실행 중인 작업의 rusage 값을 변경하면 RESRSV_LIMIT의 최대값을 초과할 수 없지만 최소값보다 낮을 수 있습니다.

이용 가능한 자원에 대해 RES_REQRESRSV_LIMIT 가 둘 다 lsb.queues 에 설정된 경우 큐 레벨 RES_REQ 는 더 이상 병합된 RES_REQ 에 대한 하드 한계로 작동하지 않습니다.rusage값을 표시합니다. 이 경우 RESRSV_LIMIT 에 의해 설정된 한계만 충족되어야 하며 큐 레벨 RES_REQ가 기본값으로 작동합니다.

다중 클러스터의 경우, 작업은 제출 클러스터의 송신 작업 큐에 대해 설정된 RESRSV_LIMIT 범위를 충족해야 합니다. 작업이 전달된 후 자원 요구사항은 실행 클러스터의 수신 작업 큐에 대해 설정된 RESRSV_LIMIT 범위에 대해서도 검사됩니다.

참고:

이용 가능한 자원 한계만 RESRSV_LIMIT에서 설정할 수 있습니다. 다른 자원은 무시됩니다.

기본값

정의되지 않음.

max 가 정의되고 선택적 min 이 정의되지 않은 경우 min 의 기본값은 0입니다.

이력서 상태

LSF가 이 큐에서 일시중단된 (SSUSP) 작업을 자동으로 재개하기 위한 조건을 지정합니다.

구문

RESUME_COND=res_req

대신select로드 임계값을 지정하기 위한 자원 요구사항 문자열의 섹션입니다. 다른 모든 섹션은 무시됩니다.

설명

LSF는 호스트의 로드가 지정된 조건을 충족하는 경우 이 큐에서 일시중단된 (SSUSP) 작업을 자동으로 재개합니다. 조건은 로드 색인 및 정적 부울 자원만 지원합니다.

RESUME_COND가 정의되지 않은 경우 loadSched 임계값을 사용하여 작업 재개를 제어합니다. RESUME_COND가 정의된 경우 작업을 재개할 때 loadSched 임계값은 무시됩니다.

기본값

정의되지 않음. loadSched 임계값은 작업 재개를 제어하는 데 사용됩니다.

실행 작업 요인

작업 슬롯 가중치 요인입니다. 적정 공유 스케줄링에서만 사용됩니다.

구문

RUN_JOB_FACTOR=번호

설명

사용자의 동적 공유 우선순위 계산에서 이 요소는 예약되어 사용자가 사용 중인 작업 슬롯 수의 상대적 중요도를 판별합니다.

정의되지 않은 경우 동일한 이름의 lsb.params 매개변수에서 클러스터 전체 값이 사용됩니다.

기본값

정의되지 않음.

실행 시간 감소

누적 CPU 시간 및 히스토리 런타임에 대해 HIST_HOURS에서 설정한 감소와 동일한 비율로 런타임에 대한 감소를 사용 가능하게 합니다. 적정 공유 스케줄링에서만 사용됩니다.

구문

RUN_TIME_DECAY=Y | y | N | n

설명

사용자의 동적 공유 우선순위 계산에서 이 요인은 런타임이 감소하는지 여부를 판별합니다.

정의되지 않은 경우 동일한 이름의 lsb.params 매개변수에서 클러스터 전체 값이 사용됩니다.

제한사항

작업 실행 시간 중에 badmin reconfig 을 실행하거나 mbatchd 을 다시 시작하면 소멸된 실행 시간이 다시 계산됩니다.

런타임 감소를 사용하는 일시중단된 작업이 재개되면 감소 시간은 경과 시간을 기반으로 합니다.

기본값

정의되지 않음

실행 시간 요인

런타임 가중치 요인을 지정합니다. 적정 공유 스케줄링에서만 사용됩니다.

구문

RUN_TIME_FACTOR=번호

설명

사용자의 동적 공유 우선순위 계산에서 이 요소는 사용자가 실행 중인 작업의 총 실행 시간의 상대적 중요도를 판별합니다.

정의되지 않은 경우 동일한 이름의 lsb.params 매개변수에서 클러스터 전체 값이 사용됩니다.

기본값

정의되지 않음.

실행 창

큐의 작업을 실행할 수 있는 기간을 지정합니다.

구문

RUN_WINDOW=tIME_WINDOW...

설명

창이 닫히면 LSF는 큐에서 실행 중인 작업을 일시중단하고 큐에서 작업 디스패치를 중지합니다. 창이 다시 열리면 LSF가 일시중단된 작업을 재개하고 추가 작업 디스패치를 시작합니다.

기본값

정의되지 않음. 큐는 항상 활성 상태입니다.

실행 제한

최대 실행 한계 및 선택적으로 기본 실행 한계를 지정합니다. 호스트 또는 호스트 모델의 이름은 사용할 런타임 정규화 호스트를 지정합니다.

구문

RUNLIMIT=[기본_제한 ] 최대_제한

여기서 default_limitmaximum_limit 는 다음과 같습니다.

[시간:][/host_name |/host_model]

설명

기본적으로 지정된 최대 실행 한계를 초과하여 실행 중 상태 (사전 실행 또는 사후 실행 상태가 아님) 에 있는 작업은 LSF에 의해 강제 종료됩니다. 선택적으로 사용자 고유의 종료 작업 조치를 제공하여 이 기본값을 대체할 수 있습니다.

최대 실행 한계보다 작은 작업 레벨 실행 한계 (bsub -W) 로 제출된 작업은 해당 작업 레벨 실행 한계에 도달하면 강제 종료됩니다. 실행 한계가 최대 실행 한계보다 큰 상태로 제출된 작업은 큐에서 거부됩니다.

기본 실행 한계가 지정된 경우 기본 실행 한계에 도달하면 작업 레벨 실행 한계 없이 큐에 제출된 작업이 강제 종료됩니다. 기본 실행 한계는 병렬 작업의 백필 스케줄링에 사용됩니다.
참고:

예상을 초과하는 작업을 강제 종료하지 않고 스케줄링 목적으로 예상 런타임을 제공하려면 실행 한계 대신 애플리케이션 프로파일에서 RUNTIME 매개변수를 정의하십시오 (자세한 내용은 lsb.applications 참조).

하나의 한계만 지정하는 경우 최대 또는 하드 실행 한계입니다. 두 개의 한계를 지정하는 경우 첫 번째 한계는 기본 또는 소프트 실행 한계이고 두 번째 한계는 최대 실행 한계입니다.

실행 한계의 형식은 [hour:] 분입니다. 분은 59보다 큰 숫자로 지정할 수 있습니다. 예를 들어, 3시간 반은 3:30또는 210으로 지정할 수 있습니다.

사용자가 지정하는 실행 한계는 정규화된 런타임입니다. 이는 작업이 더 빠르거나 더 느린 CPU를 사용하여 호스트에 전송되는 경우에도 거의 동일한 양의 처리를 수행하도록 하기 위해 수행됩니다. 정규화된 런타임이 제공될 때마다 실행 호스트의 실제 시간은 지정된 시간에 정규화 호스트의 CPU 인수를 곱한 다음 실행 호스트의 CPU 인수로 나눈 값입니다.

ABS_RUNLIMIT=Y가 lsb.params에 정의된 경우 런타임 한계는 호스트 CPU 인수에 의해 정규화되지 않습니다. 절대 벽시계 실행 시간은 실행 한계가 구성된 큐에 제출된 모든 작업에 사용됩니다.

선택적으로 LSF에 정의된 호스트 이름 또는 호스트 모델 이름을 제공할 수 있습니다. ' 를 삽입해야 합니다./' 실행 한계와 호스트 이름 또는 모델 이름 사이에 (호스트 모델 정보를 가져오려면 lsinfo(1) 을 참조하십시오.)

호스트 또는 호스트 모델이 제공되지 않은 경우 LSF는 큐 레벨 ( lsb.queues의 경우 DEFAULT_HOST_SPEC) 에 정의된 기본 런타임 정규화 호스트를 사용합니다. 그렇지 않으면 LSF는 클러스터 레벨 ( lsb.params의 경우 DEFAULT_HOST_SPEC) 에 정의된 기본 CPU 시간 정규화 호스트를 사용합니다. 그렇지 않으면 CPU 요인이 가장 큰 호스트 (클러스터에서 가장 빠른 호스트) 를 사용합니다.

다중 클러스터 작업의 경우, 다른 CPU 시간 정규화 호스트가 정의되어 있지 않고 제출 호스트에 대한 정보를 사용할 수 없으면 LSF는 가장 큰 CPU 요인 (클러스터에서 가장 빠른 호스트) 을 가진 호스트를 사용합니다.

RUNLIMIT가 30분을 초과하면 청크 작업 큐에 제출된 작업이 청크되지 않습니다.

INTERRUPTIBLE_BACKFILL로 구성된 큐에는 RUNLIMIT가 필요합니다.

기본값

무제한

SLA 보증 무시

SLA 보증에만 적용됩니다. 큐의 작업이 모든 보증된 자원에 액세스할 수 있도록 허용합니다.

구문

SLA_GUARANTEES_IGNORE=Y| y | N | n

설명

SLA_GUARANTEES_IGNORE=Y 는 큐에 있는 작업이 모든 보증된 자원에 액세스할 수 있도록 허용합니다. 결과적으로 일부 보증이 이행되지 않을 수 있습니다. 큐에 이 매개변수가 설정되지 않은 경우 이 큐의 작업은 SLA 작업의 선점을 트리거할 수 없습니다. SLA 작업이 일시중단된 경우 (예: bstop에 의해), 매개변수 세트가 없는 큐의 작업은 여전히 일시중단된 작업에 의해 해제된 슬롯을 사용할 수 있습니다.

주: SLA_따릅 es_ignore=y를 사용하면 자원을 보증하는 목적을 달성할 수 없습니다. 이는 낮은 트래픽 큐에 대해서만 드물게 사용해야 합니다.

기본값

정의되지 않았습니다 (N). 큐는 작업을 디스패치할 때 자원 보증을 준수해야 합니다.

슬롯 예약

큐에 대한 프로세서 예약을 사용 가능하게 하고 예약 시간을 지정합니다.

구문

SLOT_RESERVE=MAX_RESERVE_TIME[정수]

설명

MAX_RESERVE_TIME 키워드를 지정하고 대괄호 안에 작업이 작업 슬롯을 예약할 수 있는 MBD_SLEEP_TIME 주기 수를 지정하십시오. MBD_SLEEP_TIME은 lsb.params에 정의되어 있습니다. 기본값은 60초입니다.

예약이 만료되기 전에 작업이 시작하기에 충분한 작업 슬롯을 누적하지 않은 경우 다른 작업을 실행할 수 있도록 예약된 모든 작업 슬롯을 해제합니다. 그러면 작업이 하나의 스케줄링 세션에 대해 슬롯을 예약할 수 없으므로 다른 작업이 디스패치될 수 있습니다. 하나의 스케줄링 세션 후에 작업은 SLOT_RESERVE에 의해 지정된 다른 기간 동안 작업 슬롯을 다시 예약할 수 있습니다.

SLOT_RESERVE는 RESOURCE_RESERVE 매개변수로 대체됩니다.

RESOURCE_RESERVE및 SLOT_RESERVE가 모두 동일한 큐에 정의된 경우, 작업 슬롯 예약 및 메모리 예약이 사용 가능하며 클러스터가 재구성될 때 오류가 표시됩니다. SLOT_RESERVE가 무시됩니다.

자원 예약 및 병렬 일괄처리 작업 (schmod_parallelschmod_reserve) 모두에 대한 LSF 스케줄러 플러그인 모듈 이름이 lsb.modules 파일에 구성된 경우 RESOURCE_RESERVE가 병렬 작업에 대한 작업 슬롯 예약을 사용합니다. schmod_parallel 이름은 반드시 lsb.modules에서 schmod_reserve 앞에 와야 합니다.

BACKFILL이 큐에 구성되어 있고 실행 한계가 작업 레벨 (bsub -W), 애플리케이션 레벨 ( lsb.applications의 RUNLIMIT) 또는 큐 레벨 ( lsb.queues의 RUNLIMIT) 에 지정되어 있거나 예상 런타임이 애플리케이션 레벨 ( lsb.applications의 RUNTIME) 에 지정되어 있는 경우, 백필 병렬 작업은 예약이 있는 작업의 예상 시작 시간 이전에 완료할 수 있는 한 다른 작업에 예약된 작업 슬롯을 사용할 수 있습니다.

순차 및 병렬 작업 모두에 적용되는 메모리 예약과 달리 슬롯 예약은 병렬 작업에만 적용됩니다.

SLOT_RESERVE=MAX_RESERVE_TIME[5]

이 예제는 병렬 작업이 시작할 충분한 작업 슬롯을 예약하기 위해 최대 5주기의 MBD_SLEEP_TIME (기본적으로 5분) 을 갖도록 지정합니다.

기본값

정의되지 않음. 예약된 작업 슬롯이 없습니다.

SNDJOBS_TO

IBM Spectrum LSF 멀티클러스터 기능에 대한 전송 작업 큐를 정의합니다.

구문

SNDJOBS_TO=[queue@]cluster_name[+preference] ...

설명

공백으로 구분된 queue_name@cluster_name[+preference]양식으로 리모트 큐 이름을 지정하십시오.

lsb.queues HOSTS 가 원격 (빌려온) 자원을 지정하는 경우 이 매개변수는 무시됩니다.

큐 환경 설정은 전달된 작업을 수신하는 각 해당 실행 클러스터 큐에 대한 제출 클러스터의 SNDJOBS_TO 에 있는 큐 레벨에서 정의됩니다.

실행 클러스터에서 LSF 데이터 관리자 데이터 전송 큐를 원격 송신 작업 큐로 사용할 수 있습니다.

실행 클러스터의 데이터 전송 큐에서 SNDJOBS_TO 매개변수를 사용하여 리모트 큐를 지정하는 경우 FILE_TRANSFER_CMD 매개변수의 경로가 제출 클러스터에 있어야 합니다. 또한 제출 클러스터의 해당 리모트 큐가 데이터 전송 작업을 수신하도록 구성되어야 합니다 (즉, 제출 클러스터의 리모트 큐에 대한 RCVJOBS_FROM 매개변수 값이 이 실행 클러스터를 포함하거나 allclusters로 설정됨). 이렇게 하면 제출 클러스터가 데이터 파일을 다시 실행 클러스터로 푸시할 수 있습니다.

SNDJOBS_TO=queue2@cluster2+1 queue3@cluster2+2

LSF Data Manager의 예

실행 클러스터 clusterE 의 다음 구성에서는 LSF 데이터 관리자 전송 큐 data_transfer 가 제출 클러스터 clusterSreceive_q 큐에 대한 원격 송신 작업 큐로 설정되어 있습니다.

Begin Queue
QUEUE_NAME=data_transfer
DATA_TRANSFER=Y
SNDJOBS_TO=receive_q@clusterS
HOSTS=hostS1 hostS2 # Transfer nodes in the execution cluster
End Queue

또한 clusterS 클러스터의 다음 구성에 표시된 대로 실행 클러스터 clusterE에서 작업을 승인 (및 데이터를 푸시) 하기 위해 제출 클러스터 clusterSreceive_q 큐에 대한 RCVJOBS_FROM 매개변수를 정의해야 합니다.

Begin Queue
QUEUE_NAME=receive_q
RCVJOBS_FROM=clusterE
PRIORITY=40
HOSTS=hostS1 hostS2 # Transfer nodes in the submission cluster
RES_REQ=select[type==any]
End Queue

또는 실행 클러스터를 포함하는 모든 클러스터의 작업을 승인하도록 RCVJOBS_FROM=allclusters 를 정의할 수 있습니다.

스택 한계

이 큐의 모든 작업 프로세스에 대한 프로세스당 스택 세그먼트 크기 한계를 지정합니다.

구문

STACKLIMIT=정수

설명

이 큐의 작업에 속하는 모든 프로세스에 대해 프로세스당 하드 스택 세그먼트 크기 한계 (KB) 를 지정하려면 이 매개변수를 지정하십시오 ( getrlimit(2) 참조).

기본값

무제한

중지 조건

LSF가 이 큐에서 실행 중인 작업을 자동으로 일시중단하기 위한 조건을 지정합니다.

구문

STOP_COND=res_req

대신select로드 임계값을 지정하기 위한 자원 요구사항 문자열의 섹션입니다. 다른 모든 섹션은 무시됩니다.

설명

LSF는 호스트의 로드가 지정된 조건을 충족하는 경우 이 큐에서 실행 중인 작업을 자동으로 일시중단합니다. 조건은 로드 색인 및 정적 부울 자원만 지원합니다.
  • 시스템이 대화식으로 유휴 상태인 경우 LSF는 호스트에서 실행 중인 유일한 작업을 일시중단하지 않습니다 (it > 0).
  • LSF는 강제 실행된 작업을 일시중단하지 않습니다 (brun -f).
  • LSF는 기계가 대화식으로 유휴 상태인 경우 페이징 비율로 인해 작업을 일시중단하지 않습니다.

큐에서 STOP_COND가 지정되고 로드 임계값이 없는 경우 각 개별 로드 인덱스에 대한 일시중단 이유는 bjobs에 의해 표시되지 않습니다.

STOP_COND= select[((!cs && it < 5) || (cs && mem < 15 && swp < 50))]

이 예제에서 "cs" 가 호스트가 컴퓨터 서버임을 표시하는 부울 자원이라고 가정하십시오. 컴퓨터 서버에서 실행 중인 작업의 중지 조건은 스왑 메모리의 가용성을 기반으로 합니다. 다른 종류의 호스트에서 실행 중인 작업에 대한 중지 조건은 유휴 시간을 기반으로 합니다.

성공_출구_값

작업이 성공적으로 완료되었는지 판별하기 위해 LSF가 사용하는 종료 값을 지정합니다.

구문

SUCCESS_EXIT_VALUES=[종료 코드 ...]

설명

lsb.applicationsSUCCESS_EXIT_VALUES 로 정의된 애플리케이션 레벨 성공 엑시트 값은 lsb.queues에 정의된 구성을 대체합니다. LSB_SUCCESS_EXIT_VALUES 환경 변수로 지정된 작업 수준 성공 종료 값은 lsb.queueslsb.applications 의 구성을 재정의합니다.

LSF 가 0이 아닌 종료 코드를 작업 실패로 해석하지 않도록 0이 아닌 값으로 성공적으로 종료되는 특정 큐에 작업을 제출하기 위해 SUCCESS_EXIT_VALUES 를 사용하십시오.

SUCCESS_EXIT_VALUESREQUEUE_EXIT_VALUES 에 동일한 종료 코드가 정의되어 있는 경우, 이 종료 코드가 있는 모든 작업은 완료로 표시되지 않고 다시 대기열에 추가되는데, 이는 sbatchd 프로세스가 성공 종료 값보다 먼저 종료 값을 대기열에 추가하기 때문입니다.

다중 클러스터 작업 전달 모드에서 LSF 는 원격 클러스터의 SUCCESS_EXIT_VALUES 를 사용합니다.

다중 클러스터 자원 임대 환경에서 LSF 는 이용자 클러스터의 SUCCESS_EXIT_VALUES 를 사용합니다.

exit_code 는 0-255사이의 값이어야 합니다. 여러 종료 코드를 구분하려면 공백을 사용하십시오.

SUCCESS_EXIT_VALUES 에 대한 변경사항은 실행 중인 작업에 영향을 주지 않습니다. badmin reconfigmbatchd restart 를 실행하여 변경사항을 적용하는 경우에도 보류 중인 작업만 새 SUCCESS_EXIT_VALUES 정의를 사용합니다.

기본값

정의되지 않음.

스왑 한계

이 큐의 작업에 대한 총 가상 메모리 한계 크기 (KB) 를 지정합니다.

구문

SWAPLIMIT=정수

설명

이 한계는 작업이 포함할 수 있는 프로세스 수에 관계없이 전체 작업에 적용됩니다.

작업이 SWAPLIMIT 또는 PROCESSLIMIT를 초과할 때 수행되는 조치는 순차적으로 SIGQUIT, SIGINT, SIGTERM및 SIGKILL을 전송하는 것입니다. CPULIMIT의 경우 SIGINT, SIGTERM및 SIGKILL전에 SIGXCPU가 전송됩니다.

기본값

무제한

태스크 한계

작업에 할당할 수 있는 최대 태스크 수를 지정합니다. 병렬 작업의 경우 작업에 할당할 수 있는 최대 태스크 수입니다.

구문

TASKLIMIT=[ 최소_한도 [기본_한도 ]] 최대_한도

설명

참고: TASKLIMIT 는 LSF 9.1.3의 PROCLIMIT 를 대체합니다.

큐 레벨 TASKLIMIT 의 우선순위가 애플리케이션 레벨 TASKLIMIT 및 작업 레벨 TASKLIMIT보다 높습니다. 애플리케이션 레벨 TASKLIMIT 의 우선순위가 작업 레벨 TASKLIMIT보다 높습니다. 작업 레벨 한계는 애플리케이션 프로파일 및 큐의 최대 및 최소 한계 내에 있어야 합니다.

참고: TASKLIMIT를 정의한 동일한 큐에 JOB_SIZE_LIST 도 정의한 경우, TASKLIMIT 매개변수는 무시됩니다.

선택적으로 최소 및 기본 작업 태스크 수를 지정합니다.

모든 한계는 다음 관계를 충족하는 1이상의 양수여야 합니다.

1 < = 최소 < = 기본값 < = 최대

큐의 RES_REQ 가 블록 크기가 (span[block=value])인 복합 자원 요구사항으로 정의된 경우 TASKLIMIT 의 기본값은 블록의 배수여야 합니다.

예를 들어, 다음 구성이 허용됩니다.

큐 레벨 RES_REQ="1*{type==any } + {type==local span[block=4]}"

TASKLIMIT = 5 9 13

예를 들어, 이 구성은 허용되지 않습니다. badmin reconfig를 수행할 때 오류 메시지가 표시됩니다.

큐 레벨 RES_REQ="1*{type==any } + {type==local span[block=4]}"

TASKCLIMIT = 4 10 12

다중 클러스터 작업 전달 모델에서 로컬 클러스터는 작업을 전달하기 전에 원격 클러스터에서 수신 큐의 TASKLIMIT 를 고려합니다. 원격 클러스터에 있는 수신 큐의 TASKLIMIT 정의가 원격 큐에 대한 작업의 태스크 요구사항을 충족시킬 수 없는 경우, 작업은 클러스터의 해당 원격 큐로 전달되지 않습니다.

기본값

무제한, 기본 태스크 수는 1입니다.

종료_시점

큐가 SUSPEND 조치 대신 TERMINATE 조치를 호출하는 환경을 지정합니다.

구문

TERMINATE_WHEN=[LOAD] [PREEMPT] [WINDOW]

설명

지정된 상황에서 SUSPEND 조치 대신 TERMINATE 조치를 호출하도록 큐를 구성합니다.
  • LOAD: 로드가 일시중단 임계값을 초과하면 작업을 강제 종료합니다.
  • 선점: 선점되고 있는 작업을 강제 종료합니다.
  • WINDOW: 실행 창이 닫히면 작업을 종료합니다.

TERMINATE_WHEN 작업 제어 조치가 청크 작업에 적용되는 경우 sbatchd 는 실행 중인 청크 작업 요소를 강제 종료하고 나머지 대기 요소를 나중에 다시 스케줄할 수 있도록 보류 상태로 설정합니다.

실행 창이 닫히는 경우 작업을 강제 종료하는 야간 큐를 정의하려면 TERMINATE_WHEN을 WINDOW로 설정하십시오.
Begin Queue
QUEUE_NAME           = night
RUN_WINDOW     = 20:00-08:00 EDT
TERMINATE_WHEN = WINDOW
JOB_CONTROLS   = TERMINATE[kill -KILL $LS_JOBPGIDS; mail - s "job $LSB_JOBID 
                 killed by queue run window" $USER < /dev/null]
End Queue

시간대 지정은 선택사항입니다. 시간대를 지정하지 않으면 LSF 는 로컬 시스템 시간대를 사용합니다.

스레드 한계

작업의 일부가 될 수 있는 동시 스레드 수를 제한합니다. 한계를 초과하면 작업이 종료됩니다.

구문

THREADLIMIT=[기본_제한 ] 최대_제한

설명

시스템은 모든 프로세스가 작업에 속하는 SIGINT, SIGTERM및 SIGKILL 신호를 순서대로 전송합니다.

기본적으로 기본 스레드 한계가 지정되면 기본 스레드 한계에 도달할 때 작업 레벨 스레드 한계 없이 큐에 제출된 작업이 강제 종료됩니다.

하나의 한계만 지정하는 경우 최대 또는 하드 스레드 한계입니다. 두 개의 한계를 지정하는 경우 첫 번째 한계는 기본값 또는 소프트 스레드 한계이고 두 번째 한계는 최대 스레드 한계입니다.

기본값 및 최대 한계 모두 양의 정수여야 합니다. 기본 한계는 최대 한계보다 작아야 합니다. 기본 한계가 최대 한계보다 크면 무시됩니다.

THREADLIMIT=6

기본 스레드 한계가 지정되지 않았습니다. 값 6은 기본 및 최대 스레드 한계입니다.

THREADLIMIT=6 8

첫 번째 값 (6) 은 기본 스레드 한계입니다. 두 번째 값 (8) 은 최대 스레드 한계입니다.

기본값

무제한

작업당 스레드 제한

구문

THREADLIMIT=스레드 수

설명

작업의 스레드 제한 값은 작업에 포함될 수 있는 동시 스레드 수를 제한하며 THREADLIMIT 매개변수에 정의되어 있습니다. 한계를 초과하면 작업이 종료됩니다. 제한은 양의 정수여야 합니다.

THREADLIMIT_PER_TASK 매개변수를 사용하여 작업의 스레드 제한 값을 계산하면 작업의 작업 수에 따라 보다 세분화된 스레드 제한을 사용할 수 있습니다. LSF 을 지정하면 THREADLIMIT_PER_TASK 값에 작업의 작업 수를 곱하여 작업의 스레드 제한을 계산합니다. 이렇게 하면 작업의 스레드 제한이 전체 작업 대기열에 대해 고정된 값이 되지 않습니다.

THREADLIMIT_PER_TASK 매개변수는 작업의 스레드 제한을 계산하는 데만 사용되며 각 작업의 스레드 수를 제한하지는 않습니다.

THREADLIMIT_PER_TASK 매개 변수는 동일한 대기열에 대해 THREADLIMIT 매개 변수와 함께 구성할 수 없습니다. 동일한 대기열에 두 값을 모두 지정하면 THREADLIMIT_PER_TASK 값만 사용되고 THREADLIMIT 값은 무시됩니다.

THREADLIMIT_PER_TASK 매개변수를 사용할 때 스레드 제한 값에 대한 다음 규칙에 유의하세요:
  • 작업 및 애플리케이션 수준 THREADLIMIT 값은 THREADLIMIT_PER_TASK 값에 작업의 작업 수를 곱한 값을 초과할 수 없습니다.
  • 애플리케이션 수준 THREADLIMIT_PER_TASK 값은 대기열 수준 THREADLIMIT_PER_TASK 값을 초과할 수 없습니다.
  • 애플리케이션 수준 THREADLIMIT_PER_TASK 값은 대기열 수준 THREADLIMIT 값을 초과할 수 없습니다.
팁: 팁: 크기 조정이 가능한 작업의 경우 작업이 실행 중일 때 LSF 은 현재 작업 수에 THREADLIMIT_PER_TASK 값을 곱한 값을 사용합니다. 제출되었지만 아직 실행되지 않은 작업의 경우 LSFMAX 값에 THREADLIMIT_PER_TASK 값을 곱하여 작업의 스레드 제한 값을 계산하고 작업, 애플리케이션 및 대기열 수준 스레드 제한을 병합합니다.

THREADLIMIT_PER_TASK=10

기본값

정의되지 않음

작업 한계

대기행렬에 대한 사용자별 작업 슬롯 한계를 지정합니다.

구문

UJOB_LIMIT=정수

설명

이 매개변수는 각 사용자가 이 큐에서 사용할 수 있는 최대 작업 슬롯 수를 지정합니다.

UJOB_LIMITTASKLIMIT 또는 bsub -n 에 의해 설정된 범위 (사용되는 경우) 이상이어야 합니다. 그렇지 않으면 작업이 거부됩니다.

기본값

무제한

사용 중인 PAM_CREDS

이 큐에 PAM 한계를 적용합니다.

구문

USE_PAM_CREDS=y | n | [limits] [session]

설명

USE_PAM_CREDS 는 Linux 시스템에서만 지원됩니다. 실행 호스트에 PAM이 구성되어 있지 않고 이 매개변수가 사용 가능한 경우 작업이 실패합니다.

USE_PAM_CREDSy 또는 limits로 설정된 경우, LSF 는 PAM을 사용하여 해당 작업이 Linux 호스트에 디스패치될 때 큐에 PAM 한계를 적용할 수 있습니다. LSF 작업은 PAM 세션 내에서 실행되지 않습니다.

USE_PAM_CREDSsession로 설정된 경우:
  • 첫 번째 실행 호스트에서 작업이 시작되면 RES 작업은 사용자의 PAM 세션을 열고 해당 세션 내에서 RES 프로세스를 분기 실행합니다. 이 RES 프로세스는 사용자의 작업이 됩니다.
  • 태스크가 blaunch 명령 또는 API에 의해 실행되는 경우, RES 태스크는 사용자에 대한 PAM 세션을 열고 해당 세션 내에서 RES 프로세스를 실행합니다. 이 RES 프로세스는 사용자의 태스크가 됩니다.

limits 키워드는 session 키워드와 함께 정의할 수 있습니다.

LSF 한계가 PAM 한계보다 더 제한적이면 LSF 한계가 사용되고, 그렇지 않으면 PAM 한계가 사용됩니다. PAM 한계는 limits.conf 파일에 정의된 시스템 자원 한계입니다.

병렬 작업의 경우 USE_PAM_CREDS=y 또는 USE_PAM_CREDS=limits 가 정의된 경우 첫 번째 실행 호스트에서만 PAM 세션이 실행됩니다. USE_PAM_CREDS=session 또는 USE_PAM_CREDS=limits session 가 정의된 경우 모든 태스크에서 PAM 세션이 실행됩니다.

참고: LSF와 함께 사용할 Linux PAM을 구성할 때 작업은 일반적으로 대화식이 아니므로 사용자에게 비밀번호를 묻지 않도록 Linux PAM을 구성해야 합니다.
USE_PAM_CREDS 매개변수 설정에 따라 LSF 는 다음 Linux PAM 서비스가 작성되었다고 가정합니다.
  • USE_PAM_CREDSy 또는 limits로 설정된 경우, LSF 는 Linux PAM 서비스 "lsf" 가 작성되었다고 가정합니다.
  • USE_PAM_CREDSsession로 설정된 경우, LSF 는 Linux PAM 서비스 "lsf-<clustername>"가 작성되었다고 가정합니다.
  • USE_PAM_CREDSlimits session로 설정되면 LSF 는 Linux PAM 서비스 "lsf" 및 "lsf-<clustername>" 가 작성되었다고 가정합니다.
또한 "lsf" 서비스가 /etc/security/limits.conf 파일과 함께 사용된다고 가정합니다.

작업 sbatchd 디먼은 lsf 서비스를 검사하고 작업 또는 태스크 RES 디먼은 lsf-<clustername> 서비스를 검사합니다.

MEMLIMIT_TYPE=Process를 대체합니다.

LSB_JOB_CPULIMIT=y에 의해 대체됩니다 (CPU 한계의 경우에만).

LSB_JOB_MEMLIMIT=y에 의해 대체됩니다 (메모리 한계에만 해당).

lsb.applicationsUSE_PAM_CREDS 값은 lsb.queuesUSE_PAM_CREDS 값을 대체합니다.

기본값

n. USE_PAM_CREDS 를 사용할 수 없습니다.

사용자

큐에 작업을 제출할 수 있는 사용자 이름 또는 사용자 그룹의 공백으로 구분된 목록을 지정합니다.

구문

USERS=all [~user_name...] [~user_group...] | [user_name...] [user_group [~user_group...]...]

설명

LSF 클러스터 관리자는 자동으로 사용자 목록에 포함됩니다. LSF 클러스터 관리자는 이 큐에 작업을 제출하거나 사용자의 작업을 이 큐로 전환 (bswitch) 할 수 있습니다.

사용자 그룹이 지정되면 그룹의 각 사용자가 이 큐에 작업을 제출할 수 있습니다. FAIRSHARE 도 이 큐에 정의된 경우 두 매개변수 모두에 의해 정의된 사용자만 작업을 제출할 수 있으므로 LSF 관리자는 공유 지정에 포함되지 않은 경우 큐를 사용할 수 없습니다.

사용자 이름은 올바른 로그인 이름이어야 합니다. Windows 사용자 계정을 지정하려면 도메인 이름을 대문자( 도메인 이름 \ 사용자 이름 ).

사용자 그룹 이름은 LSF 사용자 그룹 또는 UNIX및 Windows 사용자 그룹일 수 있습니다. Windows 사용자 그룹을 지정하려면 도메인 이름을 대문자( 도메인 이름 \ user_group ).

클러스터의 모든 사용자 또는 사용자 그룹을 지정하려면 all 키워드를 사용하십시오.

all 스펙 또는 사용자 그룹에서 사용자를 제외하려면 not 연산자 (~) 를 사용하십시오. 이는 많은 수의 사용자가 있지만 큐 정의에서 소수의 사용자 또는 그룹만 제외하려는 경우에 유용합니다.

Not 연산자 (~) 는 all 키워드와 함께 사용하거나 사용자 그룹에서 사용자를 제외하는 경우에만 사용할 수 있습니다.

주의:
not 연산자 (~) 는 큐 정의에서 LSF 관리자를 제외하지 않습니다.

기본값

all (모든 사용자가 큐에 작업을 제출할 수 있음)

  • USERS=user1 user2
  • USERS=all ~user1 ~user2
  • USERS=all ~ugroup1
  • USERS=groupA ~user3 ~user4

자동 시간 기반 구성

변수 구성은 시간 창을 기반으로 LSF 구성을 자동으로 변경하는 데 사용됩니다.

if-else 구성 및 시간 표현식을 사용하여 lsb.queues 에서 자동 구성 변경사항을 정의합니다. 파일을 변경한 후 badmin reconfig 명령을 사용하여 클러스터를 다시 구성하십시오.

표현식은 mbatchd 시작 시간을 기반으로 10분마다 LSF에 의해 평가됩니다. 표현식이 true로 평가되면 LSF는 연관된 구성 명령문을 기반으로 구성을 동적으로 변경합니다. 재구성은 mbatchd를 다시 시작하지 않고 실시간으로 수행되어 지속적인 시스템 가용성을 제공합니다.

Begin Queue
... 
#if time(8:30-18:30 EDT)   
INTERACTIVE  = ONLY  # interactive only during day shift #endif
#endif
... 
End Queue

시간대 지정은 선택사항입니다. 시간대를 지정하지 않으면 LSF 는 로컬 시스템 시간대를 사용합니다. LSF 에서는 모든 표준 시간대 약어를 지원합니다.