Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| 프로그래밍:클러스터_사용법 [2021/06/07 18:37] – created yong | 프로그래밍:클러스터_사용법 [2025/01/21 13:16] (current) – heejeong | ||
|---|---|---|---|
| Line 20: | Line 20: | ||
| 클러스터는 기본적으로 쉘 스크립트를 작성하고 이것을 실행하는 명령을 내림으로 시작된다. 기본적인 형태의 예제 스크립트는 아래와 같이 작성할 수 있다. | 클러스터는 기본적으로 쉘 스크립트를 작성하고 이것을 실행하는 명령을 내림으로 시작된다. 기본적인 형태의 예제 스크립트는 아래와 같이 작성할 수 있다. | ||
| + | <code bash> | ||
| + | [your_account@master ~]$ vi test.sh | ||
| + | </ | ||
| <code | test.sh> | <code | test.sh> | ||
| #!/bin/sh | #!/bin/sh | ||
| #PBS -N my-python-code | #PBS -N my-python-code | ||
| - | #PBS -l nodes=1: | + | #PBS -l nodes=1: |
| #PBS -q g4 | #PBS -q g4 | ||
| cd # | cd # | ||
| Line 30: | Line 33: | ||
| </ | </ | ||
| - | 위의 코드를 해석하면, ' | + | 위의 코드는, |
| - | 스크립트가 실핼항 | + | - ' |
| + | - ' | ||
| + | - 'G4 GN에 할당' | ||
| + | - 그리고 스크립트가 실행할 | ||
| + | - code.py를 python3로 실행 | ||
| + | 으로 해석된다. 이 때 주의할 점은 '# | ||
| + | 'cd # | ||
| + | ' | ||
| + | |||
| + | ===== 사용가능 명령어 ===== | ||
| + | |||
| + | |||
| + | ====== 작업 실행 ====== | ||
| + | 원하는대로 스크립트를 작성했으면, | ||
| + | |||
| + | <code bash> | ||
| + | [your_account@master ~]$ qsub test.sh | ||
| + | </ | ||
| + | |||
| + | 입력하고 나면 ' | ||
| + | |||
| + | ====== 작업 보기 ====== | ||
| + | 클러스터가 실행하고 있는 작업을 보는 명령어는 | ||
| + | - 현재 클러스터에서 실행중인 작업 보기 | ||
| + | - 클러스터의 모든 노드의 상태 보기 | ||
| + | - 현재 실행중인 작업과 클러스터의 자원상태 보기 | ||
| + | 가 있다. 첫 번째로 현재 클러스터에서 실행중인 작업을 보는 명령어는 **qstat** 이다. | ||
| + | 명령어를 입력하면 아래와 같이 나타난다. | ||
| + | |||
| + | <code bash> | ||
| + | [your_account@master ~]$ qstat | ||
| + | Job ID Name | ||
| + | ------------------------- ---------------- --------------- -------- - ----- | ||
| + | xxxxxx.master | ||
| + | </ | ||
| + | |||
| + | Job ID는 qsub 명령어를 입력했을 때 나타난 작업의 번호, Name에 스크립트에 입력했던 이름, User에 계정 이름, Time Use에 실행한 시간, S에는 상태, | ||
| + | Queue 에는 할당한 GN이다. 이 때 S가 상태에 따라 나타나는 이니셜이 다르며 보통 아래와 같이 나타난다. | ||
| + | * R: Run. 작업 진행중. | ||
| + | * C: Completed. 작업 종료됨. (정상적으로 작업을 끝낸 경우) | ||
| + | * E: Exit. 작업 나감. (일반적으로 모든 작업 강제 종료시 나타나는 상태) | ||
| + | * Q: Queue. 대기. (모든 노드에서 작업이 | ||
| + | * W: Wait. 시간 대기. (qsub 명령어에서 -A 옵션으로 작업 실행 대기중) | ||
| + | * H: Hold. (작업 중간에 잠시 일시정지 하는 경우) | ||
| + | |||
| + | 두 번째로 모든 노드의 상태를 보는 명령어는 **pestat** 이다. | ||
| + | 명령어를 입력하면 아래와 같이 나타난다. | ||
| + | |||
| + | <code bash> | ||
| + | [your_account@master ~]$ pestat | ||
| + | Node GN | ||
| + | x001.hpc | ||
| + | x002.hpc | ||
| + | ... | ||
| + | x012.hpc | ||
| + | x013.hpc | ||
| + | x014.hpc | ||
| + | x015.hpc | ||
| + | ... | ||
| + | x021.hpc | ||
| + | x022.hpc | ||
| + | x023.hpc | ||
| + | x024.hpc | ||
| + | x025.hpc | ||
| + | x026.hpc | ||
| + | ... | ||
| + | x039.hpc | ||
| + | x040.hpc | ||
| + | </ | ||
| + | GN을 g4로 선택하였기 때문에, g4로 시작하는 x025.hpc 노드에 작업이 할당된 | ||
| + | x026.hpc로 작업이 할당된다. 만약에 스크립트 파일에서 1개의 cpu로 계산을 실행하게 되면, x025.hpc에 다른 작업명으로 또 할당되게 된다. | ||
| + | |||
| + | 세 번째로 현재 실행중인 작업과 클러스터의 자원상태를 보는 명령어는 **showq** 이다. | ||
| + | <code bash> | ||
| + | [your_account@master ~]$ showq | ||
| + | ACTIVE JOBS-------------------- | ||
| + | JOBNAME | ||
| + | |||
| + | xxxxxx | ||
| + | |||
| + | 1 Active Jobs 4 of 96 Processors Active (4.17%) | ||
| + | 1 of 24 Nodes Active | ||
| + | |||
| + | IDLE JOBS---------------------- | ||
| + | JOBNAME | ||
| + | |||
| + | |||
| + | BLOCKED JOBS---------------- | ||
| + | JOBNAME | ||
| + | |||
| + | |||
| + | Total Jobs: 1 | ||
| + | </ | ||
| + | |||
| + | 앞의 명령어들과의 차이점은, | ||
| + | |||
| + | ====== 작업 종료 ====== | ||
| + | 코드가 제대로 실행되지 않거나 또는 중간에 작업을 중단해야 할 경우가 있다. 이 경우에는 **qdel ' | ||
| + | 예를들어 작업번호 xxxxxx의 작업을 중단하려면 | ||
| + | |||
| + | <code bash> | ||
| + | [your_account@master ~]$ qdel xxxxxx | ||
| + | </ | ||
| + | |||
| + | 를 입력해주면 된다. 그리고 자신이 할당한 **모든 작업을 중단**하는 경우, | ||
| + | |||
| + | <code bash> | ||
| + | [your_account@master ~]$ qstat | grep [your_account] | xargs qdel | ||
| + | </ | ||
| + | |||
| + | 을 입력하면 된다. | ||
| + | |||
| + | ====== 외부링크 ====== | ||
| + | * https:// | ||