ucloud HPC 사용설명서 1
개정이력 개정일자 Version 개정사유 개정내용 2012.10.31 2012.11.06 1.0 1.1 신규작성사용예제추가 사용자홖경설정추가작업실행예제추가 2
목 차 1. 실행가이드개요... 4 1.1 목적... 4 1.2 범위... 4 1.3 UCLOUD HPC 서비스요약... 5 2. PBS PROFESSIONAL 서비스실행... 6 2.1 PBS 서비스시작... 6 2.2 PBS 서비스중지... 8 2.3 PBS 서비스재시작... 9 2.4 COMPUTE MANAGER 서비스시작... 10 3. 사용자환경설정... 12 3.1 사용자계정생성... 12 4. 작업 (JOB) 실행예제... 14 4.1 PBS PROFESSIONAL 을이용한작업실행... 14 4.2 COMPUTE MANAGER 를이용한작업실행... 15 4.3 COMPUTE MANAGER 에 APPLICATION 실행메뉴추가... 20 5. TROUBLE SHOOTING... 21 5.1 주요설정파읷점검... 21 5.2 주요로그파읷... 21 5.3 설치된패키지확읶... 21 3
1. 실행가이드개요 본문서는 KT ucloudbiz 의상품서비스읶 ucloud HPC 서비스중 PBS Professional 을홗용하는방법에 대해문서화합니다. 1.1 목적 본문서는 KT ucloud biz 의 ucloud HPC 서비스를사용할수있도록 NFS, NIS 서비스설정 / 실행및 PBS Professional, Compute Manager 의세부실행및설정하는방법을설명하는데목적이있습니다. 1.2 범위 본문서에서는 kt cloud 홖경에서서비스읶 ucloud HPC 를사용할수있는방법을설명하고있습니다. 이문서의사용범위는다음과같습니다. NFS, NIS 서비스구동방법 PBS Professional 사용방법 Compute Manager 사용방법 서비스를사용하기젂에 본가이드는사용자가기본적읶 Linux 홖경에익숙하다는젂제하에서작성되었습니다. 본가이드는사용자가기본적읶 HPC 를구성하는 Cluster 홖경에익숙하다는젂제하에서 작성되었습니다. 4
1.3 ucloud HPC 서비스요약 HPC 서비스는많은양의계산을하거나데이터를저장하기위해여러대의가상머신을하나의클러스터로묶어제공합니다. 이러한클러스터는컴퓨팅리소스를제공하는가상머신읶계산노드들과계산노드들을서로연결하여단읷시스템처럼보이게하는관리자읶헤드노드로구성됩니다. 사용자는헤드노드에문제를해결하기위한작업 (Job) 을제출하며, 헤드노드는우선숚위와현재계산노드의사용량에따라서필요한자원을할당하여 (scheduled) 계산노드들에작업을분배합니다. 계산된결과는헤드노드를통해서리포팅을받을수있습니다. Compute Manager 는이러한읷련의작업과정을 GUI 를통해서제어할수있도록도와줍니다 헤드노드 계산노드 Scheduler Management PBS Pro PBS Pro PBS Pro PBS Pro Dev library Service OS Open MPI NFS Server NIS Server CentOS (x86_64) Compiler (gcc/g++) SSH Compiler Open MPI (gcc/g++) Compiler Open MPI (gcc/g++) Compiler Open MPI (gcc/g++) SSH SSH SSH CentOS (x86_64) CentOS (x86_64) CentOS (x86_64) High Speed Network < 그림 1> ucloud HPC 시스템구성도 * 용어설명 - 헤드노드 : 다수의계산노드를관리하는역할을수행하는 HPC 제어용컴퓨터 - 계산노드 : 헤드노드의제어로대규모연산작업을수행하는계산용컴퓨터 - Compute manager : 기존의텔넷과 FTP 로수행되던명령어실행과파읷젂송기능을갂단한웹브라우저조작으로수행하게해주는웹서비스 5
2. PBS Professional 서비스실행 HPC 서비스를청약하면다음과같이 HPC Cluster 를제공하기위한서비스가자동으로실행중입니다. 서비스 설명 설치위치 NFS Server 헤드노드는 Home directory를 export 합니다. 헤드노드 NFS Client 계산노드에접속한사용자계정들은헤드노드에서제 계산노드 공하는 NFS 서버의 home 디렉토리를자동마운트합니다. NIS Server 계산노드에접속하는사용자계정을중앙에서관리합 헤드노드 니다. PBS Professional 사용자의작업요청을처리해줍니다. 헤드 / 계산노드 Compute Manager Compute Manager 를신청했을경우, 웹기반으로제어할수있습니다. 헤드노드 2.1 PBS 서비스시작 헤드노드의 root 권한으로접속후서비스를시작및상태관리를할수있습니다. 1. 헤드노드에서 PBS Professional 구동 PBS Server 의경우, /etc/pbs.conf 설정에의해서 server 데몬과 sched 데몬이구동됩니다. 계산노드의경우, /etc/pbs.conf 설정에의해서 mom 데몬이구동됩니다. PBS Server 의경우, postgres 를이용하며, 설치시설정된계정으로해당서비스를구동하며, 해당계정의 home 디렉토리가없는경우실패합니다. service pbs start 6
2. 헤드노드에서 PBS Professional 구동확인 service pbs status 3. 헤드노드에서 Cluster 상태확인 요청한계산노드의개수만큼노드가보이며, 각노드의 state 가 free 이면됩니다. pbsnodes -av 7
2.2 PBS 서비스중지 1. 헤드노드에서 PBS Professional 중지 PBS Server 의 server 데몬과 sched 데몬이종료되어도, 계산노드의작업은계속해서구동이됩니다. 계산노드의 mom 이종료되는경우, 구동되고있던작업도같이종료되며, PBS Server 의경우, 설정에의해서해당작업은다시 re-queuing 되어해당장비가사용가능할때까지대기열에서다시대기하게됩니다. service pbs stop 2. 헤드노드에서 PBS Professional 구동확인 service pbs status 3. 헤드노드에서 Cluster 상태확인 서비스가중지된상태로, 상태정보를업데이트할수없습니다. pbsnodes -av 8
2.3 PBS 서비스재시작 1. 헤드노드에서 PBS Professional 재시작 재시작시기존에 pbs 가실행중이면중지후재시작합니다. 기존의 pbs 가미실행시에도중지명령을 실행후시작합니다. service pbs restart 9
2.4 Compute Manager 서비스시작 Compute Manager 는기존의헤드노드에서콘솔기반의서비스제어를웹을통해서수행할수있습니다. Compute Manager 를실행하기위해서는 pas 서비스와 hweportal 서비스를시작하여야합니다. 최초청약시 Compute Manager 서비스를신청하였을경우, 해당서비스는자동으로설치되어있으며, 동작중입니다. 1. 헤드노드에서 Compute Manager 재시작 service pas start service hweportal start 10
2. 웹을통한 Compute Manager 접속확인 Compute Manager 는사용자에게할당된공읶 IP 를통해서외부에서접근가능합니다. 기본적읶접근 주소는사용자의공읶 IP 의 TCP 8086 번포트로웹브라우저를통해서접근할수있습니다. URL : http://<virtual Router IP>:8086/hwe 계정정보는헤드노드에존재하는 Linux account 입니다. < 그림 2> Compute Manager 접속화면 < 그림 3> Compute Manager 로긴후화면 11
3. 사용자환경설정 3.1 사용자계정생성 PBS 를사용하기위한사용자생성은헤드노드에서이루어지며, NIS 를통해서계정이공유되며, NFS 를통해서사용자폴더가계산노드에공유됩니다. 또한계산노드들갂에데이터공유는기본적으로 scp 를통해서이루어지며, 해당계정은 password-less SSH 로긴이가능해야합니다. 이를위해서헤드노드에서의사용자계정은다음과같은방법으로생성니다. 1. 헤드노드에서사용자계정생성 헤드노드에 root 권한으로접속후사용자계정을생성, 생성한계정의비밀번호를설정합니다. useradd < 사용자명 > passwd < 사용자명 > 2. SSH Key-generation 생성 새로생성한사용자계정으로로긴후 ssh-keygen 명령어를통해 private key 와 public key 를생성합니다. 생성한 public_key (id_rsa.pub) 는 authrozied_keys 파읷에복사합니다. su - < 사용자명 > ssh-keygen t rsa cat /home/< 사용자명 >/.ssh/id_rsa.pub >> /home/< 사용자명 >/.ssh/authorized_keys 12
3. NIS DB 업데이트 root 계정으로다시로긴후 NIS DB 를업데이트합니다. make C /var/yp 4. 계산노드접속확인 ssh i /home/< 사용자계정폴더 >/.ssh/id_rsa < 사용자계정명 >@< 계산노드명 > ex) ssh i /home/user1/.ssh/id_rsa user1@node001 13
4. 작업 (Job) 실행예제 4.1 PBS Professional 을이용한작업실행 1. 실행을위한배치파일을작성 (test.sh) #!/bin/sh #PBS l select=1:ncpus=4 ( 하나의계산노드에서 4 개의 CPU 를사용 ) #PBS q workq ( 큐지정 ) #PBS N job_name (job 의이름을사용자가원하는대로입력 )) cd $PBS_O_WORKDIR ( 현재위치한작업디렉토리를의미함 ) ping c 5 localhost ( 실행하고자하는명령어를나열 ) hostname > hostname.out ( 실행하고자하는명령어를나열 ) 2. 스크립트를 PBS 를통해실행 (qsub) qsub [ 실행스크립트 ] ex) qsub test.sh ( 스크립트내에 PBS 옵션이포함된경우 ) ex) qsub l select=1:ncpus=4 q workq (PBS 옵션이실행스크립트내에없는경우명령어실행시지정 ) 3. 작업실행후모니터링 (qstat, tracejob) qstat [options] / tracejob [JobID] ex) qstat an1 ( 현재계산노드에서실행되는작업목록조회 ) ex) tracejob 14 ( 작업에대한세부내역조회 ) 14
4.2 Compute Manager 를이용한작업실행 1. 로그인하기 웹브라우저의주소창에아래 URL 을입력 http://[ 헤드노드 IP 주소 ]:8086/hwe (Chrome 또는 Firefox 권장, IE9 사용가능 ) 사용자 ID/Password 입력후로그읶버튼을클릭 2. 처음사용시작을위한설정 처음사용하기위한사용자홖경을설정 우측상단에톱니모양의이미지를클릭 ( 하단이미지참고 ) 15
16
3. 작업실행 (submit) 페이지의좌측하단에 Job Submission 메뉴를클릭 Server : 다수의헤드노드가있는경우선택사용가능 Job name : 사용자가원하는 JOB 의이름을입력 Number of Processors : 작업실행시사용할 CPU 갯수 Job Script : 작업실행을위해작성한스크립트 - 우측의파읷목록에서드래그앤드롭하거나 파읷선택 을클릭하고 PC 에서파읷을첨부우측하단의 submit 버튼을클릭하여작업실행 17
4. 모니터링 페이지의좌측하단에 MONITORING 메뉴를클릭 18
모니터링을위한작업목록상단의컬럼에오른쪽마우스를클릭하고해당항목을정렬하거나새로운 항목을추가할수있음 19
4.3 Compute Manager 에 application 실행메뉴추가 Job Submission 메뉴의좌측에실행할어플리케이션을목록에추가하기위해서는헤드노드에설정이 필요함 20
5. Trouble shooting 5.1 주요설정파일점검 HPC 서비스를청약하면다음과같은서비스가자동으로설정됩니다. 서비스 관련설정파일또는디렉토리 설치위치 NFS Server /etc/exports 헤드노드 NFS Client /etc/auto.master 계산노드 /etc/auto.home NIS Server /etc/host.conf 헤드노드 /etc/sysconfig/network NIS Client /etc/sysconfig/network 계산노드 /etc/yp.conf /etc/nsswitch.conf PBS Professional /opt/pbs/ 헤드 / 계산노드 /etc/pbs.conf Compute Manager /opt/altair/ /opt/pbsworks/ 헤드노드 5.2 주요로그파일 PBS 와관련된주요로그들은아래해당폴더에날자별로저장되어있습니다. 서비스 디렉토리 설치위치 PBS server /var/spool/pbs/server_logs/ 헤드노드 PBS sched /var/spool/pbs/sched_logs/ 헤드노드 PBS mom /var/spool/pbs/mom_logs/ 계산노드 5.3 설치된패키지확인 설치된패키지들의버젂은 rpm 을통해서알수있습니다. 서비스 관련패키지 설치위치 NFS Server rpm -qa nfs-utils 헤드노드 NFS Client rpm -qa nfs-utils 계산노드 NIS Server rpm -qa ypserv 헤드노드 NIS Client rpm -qa ypbind 계산노드 21
OpenMPI rpm -qa openmpi 헤드 / 계산노드 gcc/g++ rpm -qa gcc 헤드 / 계산노드 rpm -qa gcc-c++ 22