Microsoft Word 클러스터 시스템 사용자 매뉴얼

Similar documents
Microsoft Word - 3부A windows 환경 IVF + visual studio.doc

untitled

chap 5: Trees

PowerPoint 프레젠테이션

6주차.key

본교재는수업용으로제작된게시물입니다. 영리목적으로사용할경우저작권법제 30 조항에의거법적처벌을받을수있습니다. [ 실습 ] 스위치장비초기화 1. NVRAM 에저장되어있는 'startup-config' 파일이있다면, 삭제를실시한다. SWx>enable SWx#erase sta

사용자계정관리 1. 사용자계정관리 사용자 (user), 그룹 (group) u 다중사용자시스템 (Multi-User System) - 1 대의시스템을동시에여러사람이접속하여쓸수있게하는시스템 u 사용자 (user) - 시스템관리자 : root (=Super user) -

PowerPoint 프레젠테이션

Microsoft PowerPoint - 02-Shell-Programming

Solaris Express Developer Edition

Microsoft PowerPoint UNIX Shell.ppt

Microsoft Word - Armjtag_문서1.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Backup Exec

슬라이드 1

PowerPoint Presentation

단계

ISP and CodeVisionAVR C Compiler.hwp

LXR 설치 및 사용법.doc

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10

Microsoft Word - PLC제어응용-2차시.doc

PowerPoint 프레젠테이션

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

APOGEE Insight_KR_Base_3P11

Microsoft PowerPoint - 5. 사용자 계정관리-1(2016-1학기).ppt [호환 모드]

아래 항목은 최신( ) 이미지를 모두 제대로 설치하였을 때를 가정한다

Microsoft PowerPoint UNIX Shell.pptx

fprintf(fp, "clf; clear; clc; \n"); fprintf(fp, "x = linspace(0, %d, %d)\n ", L, N); fprintf(fp, "U = [ "); for (i = 0; i <= (N - 1) ; i++) for (j = 0

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

Webtob( 멀티도메인 ) SSL 인증서갱신설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201

금오공대 컴퓨터공학전공 강의자료

Chapter 1

Sena Technologies, Inc. HelloDevice Super 1.1.0

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

슬라이드 1

주제별로명령들이따로있는것을보면주제끼리의순서는상관없어도명령들의위치를지 켜야할지도모른다. 하지만실험은해보지않았으니심심하면체크해봐도된다. [CRAB] CRAB 을하기위한가장기본적인세팅이다. jobtype = cmssw scheduler = glite 등이있다. 보통 CRAB

Remote UI Guide

<4D F736F F F696E74202D20BFEEBFB5C3BCC1A6BDC7BDC D31C7D0B1E229202D20BDA92E BC8A3C8AF20B8F0B5E55D>

강의 개요

Microsoft PowerPoint - 10Àå.ppt

Microsoft PowerPoint - [2009] 02.pptx

4. 스위치재부팅을실시한다. ( 만약, Save 질문이나오면 'no' 를실시한다.) SWx#reload System configuration has been modified. Save? [yes/no]: no Proceed with reload? [confirm] (

Microsoft PowerPoint - comp_prac_081223_2.pptx

1. efolder 시스템구성 A. DB B. apache - mod-perl - PHP C. SphinxSearch ( 검색서비스 ) D. File Storage 2. efolder 설치순서 A. DB (MySQL) B. efolder Service - efolder

슬라이드 1

Chapter 4. LISTS

untitled

워드표준 가이드

지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함. 한번은 intel CPU를위한 gcc로, 한번은 ARM CPU를위한 gcc로. AR

1217 WebTrafMon II

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

Microsoft PowerPoint - chap06-2pointer.ppt

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

adfasdfasfdasfasfadf

PowerPoint Presentation

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

Linux SHELL

Windows Server 2012

PRO1_04E [읽기 전용]

Adobe Flash 취약점 분석 (CVE )

Microsoft PowerPoint - e pptx

Mango220 Android How to compile and Transfer image to Target

리눅스 프로세스 관리

The Pocket Guide to TCP/IP Sockets: C Version

PowerPoint Presentation

PowerPoint 프레젠테이션

PCServerMgmt7

벤처연구사업(전동휠체어) 평가

Microsoft PowerPoint - chap01-C언어개요.pptx

DocsPin_Korean.pages

4S 1차년도 평가 발표자료

슬라이드 1

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

SAS9.2_SAS_Enterprise_Miner_install_guide_single_user_v2

RHEV 2.2 인증서 만료 확인 및 갱신

PowerPoint Template

solution map_....

/chroot/lib/ /chroot/etc/

Windows 8에서 BioStar 1 설치하기

PowerPoint 프레젠테이션

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

PowerPoint 프레젠테이션

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

Microsoft PowerPoint - chap03-변수와데이터형.pptx

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

슬라이드 1

윈도우시스템프로그래밍

Chap7.PDF

휠세미나3 ver0.4

Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL: E-M

Microsoft PowerPoint 통신 및 압축 명령어.ppt

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (

01Àå

Linux SHELL

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

Transcription:

클러스터시스템사용자매뉴얼 2009. 09

차례 제 1 장시스템사용안내 1. 시스템소개 2. 시스템접속정보 3. 시스템구성 제 2 장사용자환경 1. 로그인 2. 사용자쉘변경 3. 홈 / 작업디렉터리 4. 사용자프로그래밍환경 5. 작업관리자 1) 작업관리자개요 2) 작업관리자 제 3 장작업실행및관리 1. 작업제출 2. 큐구성 3. 작업모니터링 4. 작업삭제 제 4 장작업정책 1. 큐우선순위및작업정책 2. 디스크사용정책 3. 기타작업제한에대한사항 제 4 장 FAQ

제 1 장사용자안내 1. 시스템소개 본센터의장비는 IBM 사의클러스터시스템입니다. 총 16 노드로구성되어있으며, 이중 1 노드는관리노드, 15 노드는계산노드로구성되어있습니다. 2. 시스템접속정보 - 시스템주소 : 143.248.136.39 - 접속도메인 : node.kaist.ac.kr, csnode001.kaist.ac.kr - 접속방법 : SSH, SFTP 필요시 VNC 를이용하여 X-Window 사용도가능합니다. 3. 시스템의구성 본센터의장비는총 16 개노드와, NAS 스토리지로구성되어있습니다. 또한노드의구성은 1 개의관리노드와 15 개의계산노드로구분됩니다. 즉, 사용자는 1 개의관리노드에접속하여 15 개의노드를이용하여계산을수행하게되며, 계산시에는최대 120 개의 Processor(1 노드당 8 개 Processor) 를사용하실수있습니다.

########## Network Access Storage ########### 172.20.101.100 nas 172.20.101.101 nas2 ########## Management Node ################### 172.20.101.1 node001.kaist.ac.kr node001 ########## Data and network Nodes ##################### 172.20.101.1 node001.kaist.ac.kr node001 172.20.101.2 node002.kaist.ac.kr node002 172.20.101.3 node003.kaist.ac.kr node003 172.20.101.4 node004.kaist.ac.kr node004 172.20.101.5 node005.kaist.ac.kr node005 172.20.101.6 node006.kaist.ac.kr node006 172.20.101.7 node007.kaist.ac.kr node007 172.20.101.8 node008.kaist.ac.kr node008 172.20.101.9 node009.kaist.ac.kr node009 172.20.101.10 node010.kaist.ac.kr node010 172.20.101.11 node011.kaist.ac.kr node011 172.20.101.12 node012.kaist.ac.kr node012 172.20.101.13 node013.kaist.ac.kr node013 172.20.101.14 node014.kaist.ac.kr node014 172.20.101.15 node015.kaist.ac.kr node015 172.20.101.16 node016.kaist.ac.kr node016 ########## Compute Nodes ##################### 172.20.0.1 com001.kaist.ac.kr com001 172.20.0.2 com002.kaist.ac.kr com002 172.20.0.3 com003.kaist.ac.kr com003 172.20.0.4 com004.kaist.ac.kr com004 172.20.0.5 com005.kaist.ac.kr com005 172.20.0.6 com006.kaist.ac.kr com006 172.20.0.7 com007.kaist.ac.kr com007

제 2 장사용자환경 1. 로그인 현재로그인을위해 SSH, SFTP, VNC 서비스를제공하고있습니다. 1)Unix, Linux 등에서 $ssh - l 사용자 ID 143.248.136.39 2) 윈도우즈에서 -SSH Secure Shell Client 나 putty 등의 ssh 접속프로그램이용

3)VNC 를통해접속하기 vncserver 를이용하여원격에서 GUI 작업을하실수있습니다. 아래와같이작업하시면됩니다 (vncserver 명령 -> PW 를입력 ) [kaist@node001 simul]$ vncserver You will require a password to access your desktops. Password: Verify: xauth: creating new authority file /home/kaist/.xauthority New 'node001:6 (kaist)' desktop is node001:6 <- :6 번은 viewer 접속시입력 ) Creating default startup script /home/kaist/.vnc/xstartup Starting applications specified in /home/kaist/.vnc/xstartup 위작업이완료된후클라이언트에서 VNC Viewer 프로그램을이용하여접속하시면됩니다. ( 주의 : 143.248.136.39 번 IP 뒤에해당포트번호를정확히입력해주어야함 ) 위작업이완료되면기본적으로 TWM(Tab Window Manager) 환경이실행되도록되 어있습니다. 이에실제사용하는 GUI 와동일하게해주기위해서는다음과같이작업 하셔야합니다.

[kaist@node001.vnc]$cd 사용자홈디렉 /.vnc [kaist@node001.vnc]$mv xstartup xstartup.bak - TWM 환경백업 [kaist@node001.vnc]$ cp /etc/x11/xinit/xinitrc xstartup - 현재설정된 GUI 환경파일복사 기존에실행되던 vncserver 를재시작후에다시접속하시면기존 TWM 환경에서 변경된것을확인할수있습니다.

4) 클러스터하위노드에접속하기 클러스터하위노드에접근하기위해서는 node001 번에접속한후 SSH 를이용하여 하위노드에접속하셔야합니다. $ssh node002 <- node002 번에접속하기 $ssh node003 <- node003 번에접속하기 rsh 은본클러스터에서지원하지않습니다. rsh 대신 ssh 를사용하시면됩니다. 2. 사용자쉘변경 -기본쉘은 bash Shell -쉘변경은다음과같다. $chsh

3. 홈 / 작업디렉터리 홈디렉터리에는용량에제한이있으므로대용량작업이필요한경우 /data 에서작업 하시기바랍니다. 디렉터리명 경로 용량제한 soft : 3G (3G 이후경고 ) 홈디렉터리 /home/ 계정명 hard : 4G (4G 이후사용제한 ) 유예기간 : 7day 작업디렉터리 ( 스크래치 ) /data 무제한 (3G 이상에대해서는 7 일간유예기간 ) node001 에존재하는홈디렉터리는전하위노드에공유되어있어, 하위노드는 node001 과동일한홈디렉터리내용을가지게되어있습니다. 4. 사용자프로그래밍환경 연구진행및클러스터사용에필요한라이브러리및 SW 는사용자요청시수시로설치해드리고있습니다. 필요한라이브러리및 SW 가있을경우, 홈페이지기술지원요청및이메일등을이용하여요청바랍니다. 구분항목 gcc 4.1.2 mpi mpich-1.2.7pl1 java java-1.6.0 perl perl5 python python 2.4 mvapich-1.1.0-0.2931.3.el5 MVAPICH mvapich2-1.0.3-3.el5 수치해석 Matlab2009a 작업관리 Torque, Maui, OpenPBS 기타 PVM, R-package

5. 작업관리자 1) 작업관리자개요ㅁ PBS(Portable Batch System) 를이용한배치작업의실행본센터의클러스터에는 PBS 로 Torque 를사용하고있으며 PBS 는배치작업스케줄링프로그램으로서배치작업이네트워크로연결된여러컴퓨터자원들중에서최적의자원을사용할수있도록할당해주는기능을합니다. 이것은여러사용자가배치작업을수행할때작업을분산시킬수있어전체시스템의성능을향상시키고사용자가최적상태의시스템을직접확인하는번거러움을줄여줍니다. 본클러스터에서는쉘스크립트작업, 순차작업 (Serial), 병렬작업 (Parallel) 등거의대부분의작업을처리할수있습니다. 2) 작업관리자클러스터는단일사용자가사용하는시스템이아니므로하나의사용자가작업을실행하는중에다른사용자도클러스터를사용하려고할것입니다. 이때작업하나가실행되는중에다른사용자가로그인해서작업을실행하면, 현재의운영체제는모두다중

실행을지원하므로이미실행하던작업의자원을빼앗아새작업이같이실행됩니다. 클러스터가아닌시스템에서는먼저실행한작업의시간이늘어나는것으로끝나겠지만, 클러스터에서는다른문제가하나더있습니다. 클러스터는여러노드가하나의작업을나누어실행합니다. 이때노드에배분할작업의양은프로그래밍단계에서정해지기때문에여러노드를사용해작업이실행되는상태에서다른사용자가일부노드만을사용해다른작업을실행시키면그작업이실행되는노드의속도는느려지고, 다른노드는자신의프로세스를실행한후그노드의프로세스가끝날때까지대기해야합니다. 이러한식으로클러스터에서는심각한효율의저하를가져올수있습니다. 그렇기때문에시스템을효율적으로사용할수있으려면, 임의의순간에어느노드를보아도그노드는작업하나만을실행하고있어야합니다. 이때, 사용자가일단시스템에로그인해서먼저실행중인프로세스가있는지확인하고, 있으면프로세스가끝날시간을예측해서그때다시로그인해작업을실행시키는것은불편한일이아닐수없습니다. 따라서이것을자동화시켜주는프로그램이작업관리자입니다. 작업관리자는일단사용자가시스템에서직접작업을실행하지못하도록하고, 사용자의작업명령을받아자신의대기열 (queue) 에쌓아둡니다다음시스템이작업을마치고대기상태가되면즉시대기열에있던작업을순서대로실행시킵니다. 따라서여러작업을중복해서실행하거나작업을사용자스스로순차적으로실행시킬때작업간의시간공백을없애주므로시스템을효율적으로사용할수있습니다.

작업관리자는여러사용자의작업을단일프로그램이관리해야하는특성상 root 또는지정된관리자계정만이관리할수있고, 평소에는데몬으로시스템에서대기하고있습니다. 단일시스템에서는하나의작업이끝나면바로대기열에있는다음작업을실행하면되지만, 클러스터는프로세스를노드단위로배분하기때문에, 한단계를더고려해야합니다. 클러스터에서사용자가반드시모든노드를사용하지는않습니다. 16 개노드를가진클러스터에서한사용자가 10 개를사용할경우다른사용자가 5 개를사용하려고하면그사용자의작업은다른노드에배분해서즉시실행합니다. 하지만또다른사용자가 5 개를사용하려고하면그사용자의작업은대기하고있어야합니다. Backfilling : 노드를사용하는작업이먼저대기열에들어있더라도 4 개를 사용하 리눅스클러스터에많이사용되는작업관리자는 condor, maui, OpenPBS 등이있 으며모두사용법과개념은거의같음. 3) PBS(torque) 데몬의구성 pbs_server 데몬 : 사용자가입력하는작업을받고관리하는데몬. pbs_sched 데몬 : 전체노드의자원을모니터링하고작업을언제어디에서실행시킬지결정하는데몬 ( 본클러스터시스템에서는 psb_sched 데몬대신 maui 스케줄러를사용하고있음.) pbs_mon : 노드에서작업을실행시키는데몬 pbs_server, pbs_sched 데몬은사용자가직접사용하는노드에서만실행되면되고 pbs_mon 데몬은작업이실행될모든노드에서실행됨. PBS 에작업을넣을때에는실행파일의이름을직접넣는것이아니라파일이실행될때적용받는여러속성을정의한스크립트를작성해서집어넣습니다. 이때작업마다일일이속성을정의하지는않고미리여러가지의속성을정의한속성템플릿을정의합니다. 작업을넣을때에는 이작업은이러한속성템플릿의적용을받는다 의식으로스크립트를작성합니다. 따라서사용자의작업마다일일이여러속성을정의하는것보다는간편합니다.

PBS 에서는이러한속성템플릿을작업큐라고합니다. 따라서본래의큐의의미와 혼동하지않도록합니다. 여기서는특별히지적하지않는한큐는 PBS 가가리키는개 체를지칭하는것으로사용하겠습니다. 큐에서지정할수있는속성에는최대시간, 최대사용노드수, 우선순위, 최대로사용할수있는 resource, 동시에최대로이큐를사용할수있는사용자의수등이있습니다. PBS 는클러스터전체 (server), 큐, 작업 (jobs) 세가지에대해속성을정의할수있습니다. 지정가능한속성 최대시간최대사용노드수우선순위최대치 resource 큐를사용할수있는최대사용자수 속성을설정하는명령 [root@node001 sysconfig]# qmgr Max open servers: 4 이명령은 qmgr 명령프롬프트에서속성을설정할수도있고스크립트를작성해서직접입력할수도있습니다. 또는 qmgr -c 명령구문 으로쉘에서할수도있습니다. qmgr 은여러사용자에적용되는설정을관리하기때문에, root 또는지정된계정만이사용할수있고일반사용자는설정된속성을확인할수만있습니다. qmgr 명령의형식 qmgr { 명령 } { 적용받을개체 } { 속성 }

명령은다음과같은것이있습니다. 명령내용 active 활성화된객체를지정 create 새로운개체를만듬 delete 지정한객체를제거 set 객체의속성을설정 unset 설정된객체의속성을제거객체에설정되어있는속성을보여줌 list list { 개체 } 의형식으로만사용됨객체의특정한속성을보여줌 print print { 개체 } { 속성 } 의형식으로사용 명령과개체는줄여쓸수있음. ex) set server = s s, print queue = p q PBS 에서실행되는모든작업은큐에속해있어야하므로, 작업을넣을때큐이름을정해주지않으면기본으로사용할큐가반드시하나있어야합니다. 큐는자신이직접작업을실행하는실행 (execution) 큐와자신이작업을갖고있다가다른큐에넘겨주고실행하도록하는전달 (route) 큐가있습니다. 전달큐는작업을넘겨받을실행큐를속성으로따로지정해야합니다. 큐만들기 # #Set server attributes. # set server scheduling = True set server default_queue = defaultq set server log_events = 511 set server mail_from = adm 관리자속성은큐에들어온작업을 PBS 가실행하게하는것으로당연히 True 로설정합니다. query_other_jobs 는 qstat 명령으로실행되고있거나대기하고있는큐를확인할때다른계정의작업도확인할수있도록합니다. ( 나머지는기본값으로두면됩니다 )

root 외에다른계정이 qmgr 로서버와큐속성을바꿀수있게하려면 managers 속성을지정하기 set server manager = user1@node1.kaist.ac.kr, user2@node001.kaist.ac.kr node_pack 속성은 SMP 노드에서한노드에하나의작업만들어가도록하기. set server node_pack = {true,false } 정의되어있지않으면 nodes 파일에있는순서에따라작업이할당 node001 에서만작업제출하는 qsub 명령을사용할수있도록하려면 set server acl_hosts = node001@kaist.ac.kr 다른노드를추가하기위해서는 속성에서는 * 를사용할수있습니다. 따라서모든노드에서 qsub 를사용할수있도 록하는명령은다음과같습니다. set server acl_hosts =*.kaist.ac.kr 또는 * 자원을설정할수있는속성키워드는 resources_available, resources_cost, resources_defaults, resources_max 등이있는데대개최대값을지정하는 resources_max 만쓰면됩니다. 예를들어서버에서실행되는작업하나의최대시간을 1 시간 20 분으로하는설정은 set server resources_max.walltime=1:20:00 자원속성뒤에. { 속성을설정할자원이름 } 을붙이고정할값을지정해주면됨. $man pbs_resources 에나와있습니다.

.{ 속성을설정할자원이름 } 항목 cput file 자원명 내용 Maximum amount of CPU time used by all processes in the job. The largest size of any single file that may be created by the job. Units: size. nice pcput pmem pvmem vmem walltime arch host The nice value under which the job is to be run. Units: uni-tary. Maximum amount of CPU time used by any single process in the job. Units: time. Maximum amount of physical memory (workingset) used by any single process of the job. Units: size. Maximum amount of virtual memory used by any single process in the job. Units: size. Maximum amount of virtual memory used by all concurrent pro-cesses in the job. Units: size. Maximum amount of real time during which the job can be in the running state. Units: time. Specifies the administrator defined system architecture requried. This defaults to whatever the PBS_MACH string is set to in "local.mk". Units: string. Name of host on which job should be run. This resource is provided for use by the site s scheduling policy. The allowable values and effect on job placement is site depen-dent. Units: string. Number and/or type of nodes to be reserved for exclusive useby the job.. To ask for 12 nodes of any type: -l nodes=12. To ask for 2 "server" nodes and 14 other nodes (a total of 16): -l nodes=2:server+14 The above consist of two node_specs "2:server" and "14". nodes. To ask for (a) 1 node that is a "server" and has a "hippi" interface, (b) 10 nodes that are not servers, and (c) 3 nodes that have a large amount of memory an have hippi: -l nodes=server:hippi+10:noserver+3:bigmem:hippi. To ask for three nodes by name: -l nodes=b2005+b1803+b1813. To ask for 2 processors on each of four nodes: -l nodes=4:ppn=2

. To ask for 4 processors on one node: -l nodes=1:ppn=4 host other software. To ask for 2 processors on each of two blue nodes and three processors on one red node: -l nodes=2:blue:ppn=2+red:ppn=3 Allows a user to specify the desired execution location. Allows a user to specify site specific information. This resource is provided for use by the site s scheduling policy. Allows a user to specify software required by the job. This is useful if certain software packages are only available on certain systems in the site. qsub -l nodes=15,walltime=2:00:00 script or in a qsub script as a directive: #PBS -l nodes=15,walltime=2:00:00 qsub -l cput=1:00:00,walltime=2:00:00,file=50gb,mem=15mb script qalter -lcput=30:00,pmem=8mb 123.jobid or in a qsub script as a directive: #PBS -l cput=1:00:00,walltime=2:00:00,file=50gb,mem=15mb ㅁ서버속성을설정후작업을받을큐를만듬 # #Create queues and set their attributes. #Create and define queue # create queue pbsq_day set queue pbsq_day queue_type = Execution set queue pbsq_day enabled = True enabled, started 속성은기본속성이므로 true 로놓아야함 클러스터를쓰는사용자는자신의작업을실행하는데저마다다른조건이필요할수있습니다. 어떤사용자는하루단위로작업을완료할수있지만다른사용자는한달까지계속실행될수도있고, 어떤사용자는노드 4 개만으로도충분하지만다른사용자는모든노드를다써야할수도있습니다.

이때에는사용자가자신에맞는조건을가진큐를골라쓸수있도록큐를여러개만들어놓고쓰일특성에따라속성을주면됩니다. 시간에제한을두거나, 노드수에제한을둘수도있고큐를쓸수있는사용자나소프트웨어를제한할수도있습니다. 그리고큐가여러개있으면그들사이에우선순위를두어순위가높은큐를쓴작업은나중에대기큐에들어와도먼저실행되도록할수있습니다. pbsq1 이 pbsq2 보다우선순위가높도록지정하려면다음과같이합니다. set queue pbsq1 priority=1 priority 속성이지정되지않은큐의값은 0 입니다. 따라서다른큐보다순위가높으려면 1 에서 1023 사이에서임의로아무값이나지정합니다. 물론다른큐의값이지정되어있으면 그보다높은값을지정해주면그큐를먼저실행하도록할수있습니다. 우선순위값은 - 1023 에서 1023 까지쓸수있으므로다른큐보다우선순위를낮추는설정도가능합니다. 큐의자원을설정할수있는속성키워드는 resources_available, resources_min, resources_defaults, resources_max 등으로서버의자원속성에서 cost 가빠진것외에는 비슷합니다. 자원에따라큐가실행될최대시간, cpu 점유율과메모리크기, 노드수, 큐를사용할수있는소프트웨어도제한할수있습니다. 큐에자원속성을지정하면그것은다른개체에지정한속성보다우선합니다. 앞에서서버에최대실행시간을지정했다면그것은큐에최대시간속성이지정되지않았을때에만적용됩니다. ex) pbsq_day 큐로실행되는작업은 node2~node5 에서만실행되도록하려면다음속성을설정 set queue pbsq_day resource_available.host = node2 node3 node4 node5 특정노드를지정하지않고 4 개노드이상쓰지못하게하려면다음과같이합니다. set queue pbsq_day resource_max.nodes = 4 benchmark 라는소프트웨어만실행하는큐를따로만들려면 benchmark 큐를만든후다음과 같이속성을정합니다. [root@node001 ~]# qstat Job id Name User Time Use S Queue ------------------------- ---------------- ----------------------

set queue benchmark resource_available.software = { 디렉토리경로 }/benchmark 기타 : -작업단위로속성부여하기 : $man pbs_job_attributes -작업에대한속성 : qsub -W -큐, 서버, 작업에대한속성은이순서대로우선함. 작업을작업큐에넣을때작업에대해설정한속성이작업이속한큐의속성과충돌하면설정한작성속성은적용되지않음. [kimjw@node001 ~]# qstat Job id Name User Time Use S Queue ------------------------- ---------------- --------------------- 작업상태 E(exting), H(held), Q(queued), R(running), S(suspend), W(waiting) qstat 명령옵션 -Q,q 어떤큐를사용한작업이대기하거나실행되고있는지확인 -f 작업큐에있는작업의속서을자세하게보여줌. 작업을쌓아놓는명령은 qsub 입니다. 이명령은 root 로사용할수없음. 쉘에서여러작업을한번에실행시키려면스크립트파일을만든후 sh script.sh 와같이쉘이스크립트파일을읽어실행하게하는것과비슷하게, qsub 는미리만들어진작업스크립트파일을받아그안에지시되어있는대로작업을실행합니다. PBS 가실행하는작업은큐에속해서그큐의속성을받고또작업속성도지정되어실행되기때문에스크립트에 job 속성을정의하는부분이추가됩니다.

#PBS -S /bin/sh #PBS -q pbsq_day ##PBS -q pbsq_week ##PBS -q pbsq_month #PBS -l nodes={ 노드수 }:ppn= #PBS -N{ 작업이름 } #PBS -r n #PBS -e { 작업이름 } #PBS -o { 작업이름 } #PBS -V cd $PBS_O_WORKDIR set 'wc -I $PBS_NODEFILE cut -d" "-f 1';NNODE=$1 ${MPICH_HOME}/bin/mpirun - machinefile $PBS_NODEFILE -np $NNODE{ 실행파일 1} -q : 작업이사용할큐를지정 -l : 사용할노드와프로세스수를지정 ( 사용할노드는 PBS 가빈노드가생길때마다자동으로정해주므로, 사용자는사용할프로세스수만정의 ) 노드가 CPU 를여러개갖고있는 SMP 노드에서는 ppn(processors per node) 인자로프로세스수를지정해주고노드수만바꾸면됨. 그밖의인자 -e{path/name} -N{name} -o{path/name} -p{priority} -r y n 실행중인프로세스가오류를출력하면오류의내용을정해진파일에출력 qstat 에나타달작업의이름 실행되는작업이출력하는내용을정해진파일에출력 작업의우선순위를결정함. 기본값은 0 이고 -1024 에서 +1023 까지정할수있음 qrerun 명령으로실행중에처음부터재실행될수있을지를정의 -S {path_list} 스크립트를실행시킬쉘을정의 -v{variable_list} -V -W{ 작업속성 } qsub 변수외환경변수를스크립트안에서정의해서사용 외부에서선언된환경변수를 qsub 스크립트에서도쓸수있도록함 qsub 인자에서설정되지않는작업속성을정의할때사용

- 스크립트안에 qsub 인자는 #PBS 키워드로선언되며, 이때앞의 # 는주석표시가아니므로 생략하지말아야함. PBS 키워드에서주석으로처리할때는 ## 으로해야함. PBS 에서제공하는환경변수 변수명 PBS_O_HOST PBS_O_QUEUE PBS_O_WORKDIR PBS_ENVIROMENT PBS_JOBID PBS_JOBNAME PBS_NODEFILE PBS_QUEUE 내용 qsub 명령이실행된노드이름을나타냄 스크립트에서사용한큐의이름을나타냄 qsub 명령이실행된디렉토리경로를나타냄 batch 작업이면 PBS_BATCH, interactive 작업이면 PBS_INTERACTIVE 값을가짐 작업관리자에서할당한작업 ID 번호를나타냄 사용자가스크립트에서써준작업이름을나타냄 작업이실행되는노드목록이있는임시파일이름을나타냄 작업이실행될때사용하는큐의이름을나타냄. 스크립트에전달큐를사용했으면 PBS_O_QUEUE 에는전달큐이름이, PBS_QUEUE 에는작업을넘겨받은실행큐이름이저장 mpirun 실행명령은쉘실행과같음. 다음과같이여러명령을순차적으로작업스크립트하나로한번에실행할수있음. set 'wc -l $PBS_NODEFILE'; NNODE=$1 ${MPICH_HOME}/bin/mpirun -v -machinefile $PBS_NODEFILE -np $NNODE{ 실행파일 } ${MPICH_HOME}/bin/mpirun -v -machinefile $PBS_NODEFILE -np $NNODE{ 실행파일 } PBS_NODEFILE 변수에는노드이름을나열한문자열이아니라노드이름이나열되어있는가상파일의이름이있음. -machinefile 을 $PBS_NODEFILE 로해서 PBS 가지정한노드에서프로그램이실행되도록합니다. -np 에는프로세스수를사용합니다. 여기서는스크립트에서 PBS 변수의노드수와 -np 의수를일일이바꾸기번거러우므로노드의수를세어 NNODE 변수에저장하고 -np 가이변수값을사용하도록했음. 그러므로스크립트에서 PBS-l 의값만바꾸면됩니다. MPICH_HOME 같은외부에서선언된환경변수를사용할때에는 #PBS -V 인자를먼저붙여주어야합니다. mpirun 예 )

[root@node001 ~]# cat /usr/local/cmsupporter/script/parallel.sh #!/bin/csh -f #PBS -l nodes=4:ppn=2 #PBS -l walltime=04:00:00 #PBS -V set NCPUS=`wc $PBS_NODEFILE awk '{print $1}'` echo '#CPUs is:' $NCPUS cd $PBS_O_WORKDIR echo "Current working directory is `pwd`" echo "Node file: $PBS_NODEFILE :" cat $PBS_NODEFILE echo "---------------------" ######################################## setenv LD_LIBRARY_PATH /usr/local/mpich-1.2.7p1/lib set MPIRUN='/usr/local/mpich-1.2.7p1/bin/mpirun' #define you command and opnions

제 3 장작업실행및관리 1.Parallel 프로그램 1) Parallel 프로그램예제개요 Parallel 프로그램예제를위해다음과같은 4X4 행렬과 1X4 행렬의곱에대해병렬처 리및프로그램실행을하도록하겠습니다. 결과인 1X4 행렬의값하나는 4X4 행렬과 1X4 행렬의숫자들의곱을합한값입니다. 이것을클러스터에서계산하기위해서는 4 개노드를사용하여 4X4 행렬의각행을 4 개로나누어주고, 1X4 행렬은모든노드가알아야하므로각노드에그대로분배해주 면됩니다.

위계산을프로그램코드로작성하면다음과같습니다. [ 주요코드설명 ] MPI_Scatter(&m1,4,MPI_INT,&m1_n,MPI_INT,0,MPI_COMM_WORLD); - 배열값을노드에나눠주는함수 MPI_Scatter( 나눌변수, 변수크기, 변수형, 보낸값받는수, 크기, 변수형, 노드순번, 통신자 ) MPI_Bcast(&m2,4,MPI_INT,0,MPI_COMM_WORLD); - 배열값을나누지않고그대로전달하는함수 MPI_Bcast( 전달할변수, 크기, 변수형, 루트노드, 통신자 ) MPI_Gather(&m3_n,1MPI_INT,&m3,1,MPI_INT,0,MPI_COMM_WORLD); - 0 번노드로값을다시모으는함수 MPI_Gather( 모을변수, 크기, 변수형, 받을변수, 변수형, 루트노드, 통신자 )

[Parallel 프로그램예제 ] #include <mpi.h> #include <stdio.h> int main(int argc,char *argv[]) { int m1[4][4],m2[4],m1_n[4],m2_n[4],m3[4]; int i,m3_n=0,iproc,nproc; MPI_Init(&argc,&argv); MPI_Comm_size(MPI_COMM_WORLD,&nproc); MPI_Comm_rank(MPI_COMM_WORLD,&iproc); if(nproc!=4) { if(iproc==0)printf("error! excuted node have to be 4. \4"); MPI_Abort(MPI_COMM_WORLD,1); } if(iproc==0) { m1[0][0]=1; m1[0][1]=15; m1[0][2]=14; m1[0][3]=4; m1[1][0]=12; m1[1][1]=6; m1[1][2]=7; m1[1][3]=9; m1[2][0]=8; m1[2][1]=10; m1[2][2]=11; m1[2][3]=5; m1[3][0]=13;

2) 프로그램컴파일 위의예제프로그램은 MPI 를이용하여작성된코드이므로 mpicc 명령을이용하여컴파일 합니다. $mpicc -o paral parallel.c 3)Parallel 프로그램실행 (1)parallel.sh 파일수정 parallel.sh 원본파일의경로 /usr/local/cmsupporter/script #!/bin/csh -f #PBS -l nodes=4 #PBS -l walltime=04:00:00 #PBS -V set NCPUS=`wc $PBS_NODEFILE awk ' (print $1 5'` echo '#CPUs is:' $NCPUS cd $PBS_O_WORKDIR echo "Current working directory is `pwd`" echo "Node file: $PBS_NODEFILE :" cat $PBS_NODEFILE echo "---------------------" ######################################## setenv LD_LIBRARY_PATH /usr/local/mpich-1.2.7p1/lib set MPIRUN='/usr/local/mpich-1.2.7p1/bin/mpirun' #define you command and opnionsv (2)parallel.sh 파일실행 $qsub parallel.sh

(3) 작업모니터링구분 명령어 설명 큐구성정보 showq 큐구성에대한정보 qstat 사용자자신의작업정보 작업모니터링 옵션 -f 작업세부정보 옵션 -Q 작업큐별실행정보 (4) 결과확인 [kaist@node001 simul]$ cat parallel.sh.< 작업번호 > #CPUs is: 4 Current working directory is /home/kaist/simul Node file: /usr/local/cmsupporter/spool/aux//2733.node001.kaist.ac.kr : node005 node004 node003 node002 --------------------- ( 1 15 14 4)( 1) = (90) (5) 작업삭제 해당 jobid 를가지는작업삭제 $qdel <jobid>

2. Serial 프로그램 1) Serial 프로그램예제개요 1~1,000,000 까지더하는예제를통해 Serial 프로그램의실행방법과과정을알아보도록하겠습니다. 2) 예제프로그램소스코드 #include <stdio.h> #include <time.h> int main(int argc,char *argv[]) { double i,sum_t=0; for(i=0;i<=1000000;i++) { sum_t+=i; } 3) 예제프로그램컴파일하기 $gcc -o serial serial.c 4) 작업스크립트작성하기 serial.sh 원본파일의경로 /usr/local/cmsupporter/script Serial.sh 파일수정

#!/bin/csh -f # simple TORQUE/PBS job script to run program my_prog # set default resource requirements for job # - these can be overridden on the qsub command line #PBS -l walltime=2:00:00 #PBS -l nodes=1:ppn=8 # export all my environment variables to the job #PBS -V # Change to directory from which job was submitted cd $PBS_O_WORKDIR echo "Current working directory is `pwd`" echo "Node file: $PBS_NODEFILE :" echo "---------------------" cat $PBS_NODEFILE echo "---------------------" 5) serial.sh 파일실행 $qsub serial.sh 6) 작업모니터링구분 명령어 설명 큐구성정보 showq 큐구성에대한정보 qstat 사용자자신의작업정보 작업모니터링 옵션 -f 작업세부정보 옵션 -Q 작업큐별실행정보 7) 작업삭제 해당 jobid 를가지는작업삭제 jobid 는 qstat 명령을사용하면확인가능

제 4 장작업정책 1. 큐우선순위및작업정책 작업시간에따라우선순위가다릅니다. 10 분이내의작업이가장높은우선순위를가지며, 1 시간 >12 시간 >48 시간 >720 시간 > 무제한순으로우선순위가조정됩니다. qsub 를실행시기본적으로실행되는작업큐는 batch 큐이며, 720 시간 ( 약 30 일 ) 정도의 walltime(cpu 제한시간 ) 을가지며, 그외의특별한제약사항은없습니다. - 작업큐표 큐이름 short_10 short_60 normal_12 normal_48 batch long 큐설명 10 분이내작 업 60 분이 내작업 12 시간이내작 업 48 시간이내 작업 기본큐 한달 (30 일 ) 무제 한 작업 우선순위 (Priority) 500 400 300 200 100 10 CPU 제한시 간 00:10:00 01:00:00 12:00:00 48:00:00 720:00:00 없음 (Walltime) run 제한수 (max_run) 30 30 30 30 없음없음

[root@node001 qmgr]# cat 20090729 create queue defaultq set queue defaultq queue_type = Route set queue defaultq route_destinations = batch set queue defaultq route_destinations += short_10 set queue defaultq route_destinations += short_60 set queue defaultq route_destinations += normal_12 set queue defaultq route_destinations += normal_48 set queue defaultq route_destinations += long set queue defaultq enabled = True set queue defaultq started = True # Create and define queue batch create queue batch set queue batch queue_type = Execution set queue batch Priority = 100 set queue batch resources_default.neednodes = batch set queue batch enabled = True set queue batch started = True # Create and define queue short_10 create queue short_10 set queue short_10 queue_type = Execution set queue short_10 Priority = 500 set queue short_10 resources_max.walltime = 00:10:00 set queue short_10 enabled = True set queue short_10 started = True # Create and define queue short_60 create queue short_60 set queue short_60 queue_type = Execution set queue short_60 Priority = 400 set queue short_60 resources_max.walltime = 01:00:00 set queue short_60 enabled = True set queue short_60 started = True

# # Create and define queue normal_12 # create queue normal_12 set queue normal_12 queue_type = Execution set queue normal_12 Priority = 300 set queue normal_12 resources_max.walltime = 12:00:00 set queue normal_12 enabled = True set queue normal_12 started = True # # Create and define queue normal_48 # create queue normal_48 set queue normal_48 queue_type = Execution set queue normal_48 Priority = 200 set queue normal_48 resources_max.walltime = 48:00:00 set queue normal_48 enabled = True set queue normal_48 started = True # # Create and define queue long # create queue long - 작업큐를사용하기위한작업스크립트변경하기 작업스크립트에 #PBS -q { 작업큐명 } 을추가해주시면됩니다.

#!/bin/csh -f #PBS -l nodes=14:ppn=4 #PBS -l walltime=00:10:00 <-작업큐의 walltime 과동일한시간을넣어주어야함. #PBS -p 10 #PBS -V #PBS -q short_10 <-원하는큐이름을넣습니다. set NCPUS=`wc $PBS_NODEFILE awk '{print $1}'` echo '#CPUs is:' $NCPUS cd $PBS_O_WORKDIR echo "Current working directory is `pwd`" echo "Node file: $PBS_NODEFILE :" cat $PBS_NODEFILE 2. 디스크사용정책 디스크사용제한은 Quota 가이용되고있으며, /home 디렉터리의경우 soft 3G, hard 4G 입니다. 3G 초과된데이터에대해서는 7 일간유예기간이설정되어있으니, 7 일만료전에 필요한데이터는백업받으시기바랍니다. 대용량의파일, 작업의경우는 /data 영역을 (NAS 스토리지 ) 이용바랍니다. 디렉터리명 경로 용량제한 soft : 3G (3G 이후경고 ) 홈디렉터리 /home/ 계정명 hard : 4G (4G 이후사용제한 ) 유예기간 : 7day 작업디렉터리 ( 스크래치 ) /data 무제한 (3G 이상에대해서는 7 일간유예기간 ) 2.1)Quota 적용용량확인하기 $quota {userid} 명령 [root@node001 data]# quota { 유저 ID} Disk quotas for user kaist (uid 513): Filesystem blocks quota limit grace files quota limit grace /dev/mapper/volgroup00-logvol00

FAQ 1.SSH 접속시한글이깨질경우 PUTTY 사용시 (1) 아래와같이한글깨짐현상이발생할경우원인 : 클라이언트와서버간의인코딩불일치문제 (2) 조치방법 PUTTY 설정창 - 변환 - 수신데이터의문자셋변환에서 UTF-8 로설정

Xshell 사용시 (1) 아래와같이한글깨짐현상이발생할경우 원인 : 클라이언트와서버간의인코딩불일치문제

2) 조치사항 [ 파일 ] - [ 등록정보 ] - [ 터미널 ] 에서출력변환부분의인코딩항목을 UTF-8 로변경

2. 서버에파일을올릴경우 SSH Secure File Transfer Client 프로그램을이용하여보안 FTP(SFTP) 서비스를이용하시면됩니다. 1. SSH Secure File Transfer Client 프로그램실행 2. Quick Connect 버튼클릭 - Connect to Remote Host 정보입력 3. 접속완료

3. 원격에서 X-window 를사용하고싶습니다. 어떻게해야하나요? vncserver 를이용하여원격에서 GUI 작업을하실수있습니다. 아래와같이작업하시면됩니다 (vncserver 명령 -> PW 를입력 ) [kaist@node001 simul]$ vncserver You will require a password to access your desktops. Password: Verify: xauth: creating new authority file /home/kaist/.xauthority New 'node001:6 (kaist)' desktop is node001:6 <- :6 번은 viewer 접속시입력 ) Creating default startup script /home/kaist/.vnc/xstartup Starting applications specified in /home/kaist/.vnc/xstartup Log file is /home/kaist/.vnc/node001:6.log

위작업이완료된후클라이언트에서 VNC Viewer 프로그램을이용하여접속하시면됩 니다. ( 주의 : 143.248.136.39 번 IP 뒤에해당포트번호를정확히입력해주어야함 ) 위작업이완료되면기본적으로 TWM(Tab Window Manager) 환경이실행되도록되어있습니다. 이에실제사용하는 GUI 와동일하게해주기위해서는다음과같이작업하셔야합니다. [kaist@node001.vnc]$cd 사용자홈디렉 /.vnc [kaist@node001.vnc]$mv xstartup xstartup.bak - TWM 환경백업 [kaist@node001.vnc]$ cp /etc/x11/xinit/xinitrc xstartup - 현재설정된 GUI 환경파일복사

기존에실행되던 vncserver 를재시작후에다시접속하시면기존 TWM 환경에서변경된것을 확인할수있습니다. 4.qsub 로실행시킨 job 이어느노드에서실행되고있는지 어떻게확인하나요? $ qstat -f 명령을해보시면실행노드를알수있습니다. Job Id: 118193.node001.kaist.ac.kr Job_Name = script_51.sh Job_Owner = sbmoon@node001.kaist.ac.kr job_state = E queue = batch server = node001.kaist.ac.kr Checkpoint = u

ctime = Fri Jul 31 16:41:37 2009 Error_Path = node001.kaist.ac.kr:/data/sbmoon/script_51.sh.e118193 exec_host = node002/2 <- 실행노드 / 프로세서 5. 하위노드접속시 Permission denided 및 Public key 에러가 발생합니다. [ 에러내용 ] Permission denied, please try again.^m Permission denied, please try again.^m Permission denied (publickey,gssapi-with-mic,password).^m ssh-keygen 명령을이용해각노드로접근시인증하는문제를다시셋팅해야합니다. [ 각하위노드로의 SSH 접속시인증셋팅 ] 1 번노드에서다음과같이작업을수행합니다. $ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/{ 사용자디렉터리 }/.ssh/id_rsa): /home/{ 사용자디렉터리 }/.ssh/id_rsa already exists. Overwrite (y/n)? y Enter passphrase (empty for no passphrase): 엔터혹은값입력 Enter same passphrase again: 확인값 Your identification has been saved in /home/{ 사용자디렉터리 }.ssh/id_rsa. Your public key has been saved in /home/{ 사용자디렉터리 }/.ssh/id_rsa.pub. The key fingerprint is:

위와같이작업후 /home/{ 사용자디렉터리 }/.ssh 디렉터리로이동 $cp id_rsa.pub authorized_keys cp: overwrite `authorized_keys'? y 작업이완료되면 하위노드에정상적으로접근이가능합니다. $ssh node002 Last login: Wed Jul 29 11:43:46 2009 from node001.kaist.ac.kr