데이터 센터

연세대학교 인공지능융합대학


사용법 안내

Total 1건 1 페이지
사용법 안내 목록
번호 제목 작성일
1

자원관리자

자원관리자(Resource Manager)는 보통 HPC 클러스터 환경에서만 접할 수 있는 도구로, 기본적으로 아래 그림과 같이(Backfill) 작업의 크기에 따라 가용한 자원에 작업을 분배하고 자원이 모두 사용중일 때는 대기열(queue) 에 작업을 쌓아 두었다가 사용가능한 자원이 확보되면, 대기하고 있던 작업을 시작시켜주는 역할을 하게 됩니다.

1. Resource Manager 대기열(queue) 과 Backfill
2. SLURM - Priority_and_Fair_Trees
3. SLURM 구성 파일
  • SLURM 은 다음과 같은 파일에 의해 구성 됩니다.
위치 내용
/etc/slurm.conf 일반 Slurm 구성 정보, 관리 할 노드, 해당 노드가 파티션으로 그룹화되는 방법에 대한 정보 및 해당 파티션과 관련된 다양한 스케줄링 매개 변수를 지정.
/etc/gres.conf 각 계산 노드의 GRES (Generic RESource)의 구성 정보를 지정.
GRES는 그래픽 처리 장치 (GPU), CUDA MPS (다중 프로세스 서비스) 및 인텔 MIC (다중 통합 코어) 를 지원 합니다.
일반적으로 GPU 구성에 대한 내용으로 작성 됩니다.
  • 위 두 설정파일의 NodeName 항목을 통해 클러스터에서 사용되는 노드들의 세부 구성정보를 살펴볼 수 있습니다.

cat /etc/slurm/slurm.conf | grep ^NodeName

cat /etc/slurm/gres.conf

sinfo

sinfolong

4. SLURM 명령
명령어 내용
sinfo Slurm 노드 및 파티션에 대한 정보를 봅니다.
alias (별칭) 를 통해 sinfolong 과 같은 명령을 추가하여 상세한 정보를 표시 합니다.
squeue Slurm 스케줄링 대기열에 있는 작업에 대한 정보를 봅니다.
alias (별칭) 를 통해 squeuelong 과 같은 명령을 추가하여 상세한 정보를 표시 합니다.
srun 실시간으로 실행할 작업을 제출하는 데 사용됩니다.
명령어를 노드에 직접 입력하거나 작업 결과를 즉시 확인할 수 있는 대화형 작업을 시작 합니다.
작업을 시작하기 위해 리소스를 할당 받아 노드에 진입하고 난 후에 작업이 끝나도 자동으로 종료되지 않으므로 클러스터 자원이 낭비되는 요인이 될 수 있습니다.
가급적 디버깅 용도로만 사용는 것을 권장 합니다.
일부 클러스터 시스템 에서는 srun 을 통한 작업의 제한시간이 sbatch 보다 짧게 설정 되는 경우가 있습니다.
sbatch Slurm에 배치(batch/일괄작업) 스크립트를 제출 합니다.
제출된 작업은 가용한 자원이 있는 경우 즉시 실행되며, 없는 경우 대기열(queue) 에서 보류(pending) 됩니다.
scancel 제출된 작업을 취소 합니다.
scontrol 작업, 작업 단계, 노드, 파티션, 예약 및 전체 시스템 구성을 포함한 Slurm 구성을 보거나 수정하는 데 사용 합니다.
일반 사용자의 경우 자신의 작업만 수정할 수 있습니다. (보는 것은 가능 합니다)
  • >> sinfo 의 node STATE
상태 내용
idle 정상, 대기 중
mix 일부자원 사용중
alloc 모든자원 사용중
down 비정상, 연결 되어있지 않음.
5. SLURM 우선순위 정책

아래 표시된 정책은 예시이며 클러스터의 구축목적 과 관리정책에 따라 다를 수 있습니다.

1) 기본정책

  • 클러스터의 최대 작업시간 3일 (3-00:00:00) / 사용자의 최대 작업시간은 계정(Account) 별로 상이함.
  • 실제 사용량(RawUsage)많은 사용자의 작업 우선순위(PRIORITY)가 낮아 집니다. (FairShare)
  • 실제 사용량(RawUsage)이 동일하다면 기준 사용량(RawShares)이 많은 계정(그룹) 의 작업 우선순위(PRIORITY)가 높게 책정 됩니다.
  • 집계된 사용량은 1주 단위로 절반으로 감소 됩니다. (PriorityDecayHalfLife=7-0)
  • 집계된 사용량의 초기화 주기는 설정되지 않음. (PriorityUsageResetPeriod=0)
  • 집계된 사용량은 관리자 권한으로 초기화 가능 (sacctmgr modify account $USERNAME set rawusage=0)
  • 오랫동안 대기열에 머물러 있는 job은 7일 동안 우선순위 (Priority) 가 점차 상승 합니다. (PriorityMaxAge=7) / 최대 7일
  • 적용 우선순위 : 1.QOS > 2.Association > 3. Partition

2) 사용자 개별 적용 정책

내용 명칭
실행 작업 MaxJobs= 10

3) 계정(Account) 개별 적용 정책 (사용자 그룹)

내용 명칭
계정 이름 Account default
기준 사용량 fairshare=(RawShares) 10000
최대 실행 작업 GrpJobs= 100
최대 제출 작업 GrpSubmit= 200
최대 실행 시간 MaxWall=(일-시간:분:초) 3-00:00:00
최대 GPU 수 GrpTRESS= gres/gpu=50

4) QOS 정책 / 기본 정책을 벗어나는 예외 적용

내용 명칭
QOS 이름 Name small-fast
우선 순위 Priority=(high->fast) 150
user당 최대 실행 작업 MaxJobsPU= 10
user당 최대 제출 작업 MaxSubmit= 20
최대 실행 기간 MaxWall=(일-시간:분:초) 3:00:00
최대 GPU 수 MaxTRES= gres/gpu=30
node당 최대 GPU MaxTRESPerNode= gres/gpu=1
node당 최소 GPU MinTRES= gres/gpu=4

5) 클러스터에 적용 되어 있는 설정 값 확인

ssh MASTER sacctmgr list Cluster
ssh MASTER sacctmgr list Account
ssh MASTER sacctmgr list User
ssh MASTER sacctmgr list Association
ssh MASTER sacctmgr list QOS


6) 작업 우선 순위 산정방식

Job_priority =
site_factor +
(PriorityWeightAge) * (age_factor) +
(PriorityWeightAssoc) * (assoc_factor) +
(PriorityWeightFairshare) * (fair-share_factor) +
(PriorityWeightJobSize) * (job_size_factor) +
(PriorityWeightPartition) * (partition_factor) +
(PriorityWeightQOS) * (QOS_factor +
SUM (TRES_weight_cpu * TRES_factor_cpu,
TRES_weight_ * TRES_factor_,
...)
- nice_factor

6. 참고자료 - 해외 대학 및 연구소의 HPC 관련 문서 및 자료 사이트