slurm job 사용량 기준 priority를 적용.
아래는 claude가 작성한 작업 요약.
관련: #139 (age 기반 우선순위의 후속)
배경
- #139에서 넣은 age 기반 우선순위는 사실상 "먼저 온 순서"라, 큰 array를 먼저 넣은 유저가 클러스터를 통째로 가져감
- 실제 사례 (9/29 밤): joshin이 약 2300개짜리 array를 넣은 뒤 sunkyu131은 새 슬롯을 하나도 못 받음 (22시 이후 시작한 잡 0개). 잡이 끝날 때마다 joshin이 자리를 가져가는 구조
- 그룹 간에 나눠 쓰도록 fairshare 도입
설계
- 수동 등록: 보안상 자동 등록 cron은 쓰지 않음.
adduser 할 때 sacctmgr 등록도 같이 하는 절차로 운영
- 그룹별 account: root 아래
cms, cpnr, hep-khu 세 그룹, 모두 Fairshare=1 (셋 다 바쁘면 1/3씩)
- 여러 account 소속은 의도된 설정: 연구실 멤버에게 다양한 우선권을 주기 위함. 기본 account 외에는
sbatch -A <account>로 선택
Account 구성
root
├── cms jhgoh, joshin, slowmoyang
├── cpnr sunkyu131, sykim, jhgoh, wonsang1995 외 (총 19명)
└── hep-khu jhgoh, joshin, wonsang1995
기본 account: jhgoh / joshin / wonsang1995 → hep-khu, slowmoyang → cms, 나머지 → cpnr
적용 내용
1. account / 유저 등록
sacctmgr -i add account cpnr Parent=root Fairshare=1
sacctmgr -i add user <이름> Account=<그룹> Fairshare=1
sacctmgr show assoc tree format=Account,User,Fairshare
2. slurm.conf
PriorityDecayHalfLife=1-0 # 새로 추가 (기본값 7일 → 1일)
PriorityWeightFairshare=10000 # 0 → 10000
나머지(PriorityWeightAge=1000, PriorityMaxAge=3-0)는 그대로. 전 노드 배포 후 scontrol reconfigure
3. 기존 대기 잡에 account 연결
등록 전에 제출된 잡은 account가 (null)이라 fairshare 0점이 됨
squeue -t PD -o "%.12F %.10u %.10a" | sort -u
scontrol update jobid=<ArrayJobID> account=<그룹> # array는 ArrayJobID 하나로 전체 적용
검증
sshare -a (적용 시점): cpnr RawUsage 51304, hep-khu 59860. FairShare: cms 유저 1.00, cpnr 유저 0.84, sunkyu131 0.16, hep-khu 유저 0.12, joshin 0.04
sprio -l: joshin array 우선순위 447 = age 47 + fairshare 400. sunkyu131은 점수가 높아 대기 없이 바로 실행됨
- Grafana: joshin 실행 수가 약 245개에서 멈추고 sunkyu131이 다시 슬롯을 받기 시작함. joshin 대기 사유가
Resources → Priority로 바뀜
운영 참고
- 신규 유저:
adduser <이름> 후 sacctmgr -i add user <이름> Account=<그룹> Fairshare=1. 삭제할 때도 sacctmgr -i delete user <이름>
- 미등록 유저는 fairshare 0점이라 최하위로 밀림 → 등록 누락 주의
- Fair Tree 방식: 그룹 순위가 먼저, 그 안에서 유저 순위. 많이 쓴 그룹의 유저는 사용량이 0이어도 덜 쓴 그룹의 유저보다 뒤
- 반감기 1일: 어제 사용량은 절반, 이틀 전은 1/4만 반영
- 확인 명령:
sshare -a, sprio -l
slurm job 사용량 기준 priority를 적용.
아래는 claude가 작성한 작업 요약.
관련: #139 (age 기반 우선순위의 후속)
배경
설계
adduser할 때sacctmgr등록도 같이 하는 절차로 운영cms,cpnr,hep-khu세 그룹, 모두Fairshare=1(셋 다 바쁘면 1/3씩)sbatch -A <account>로 선택Account 구성
기본 account: jhgoh / joshin / wonsang1995 →
hep-khu, slowmoyang →cms, 나머지 →cpnr적용 내용
1. account / 유저 등록
2. slurm.conf
나머지(
PriorityWeightAge=1000,PriorityMaxAge=3-0)는 그대로. 전 노드 배포 후scontrol reconfigure3. 기존 대기 잡에 account 연결
등록 전에 제출된 잡은 account가
(null)이라 fairshare 0점이 됨검증
sshare -a(적용 시점): cpnr RawUsage 51304, hep-khu 59860. FairShare: cms 유저 1.00, cpnr 유저 0.84, sunkyu131 0.16, hep-khu 유저 0.12, joshin 0.04sprio -l: joshin array 우선순위 447 = age 47 + fairshare 400. sunkyu131은 점수가 높아 대기 없이 바로 실행됨Resources→Priority로 바뀜운영 참고
adduser <이름>후sacctmgr -i add user <이름> Account=<그룹> Fairshare=1. 삭제할 때도sacctmgr -i delete user <이름>sshare -a,sprio -l