TACHYON_Userguide_V1_0.hwp

Similar documents
Microsoft PowerPoint - 타키온1&2

tachyon_userguide_v1.2_ hwp

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

LAMMPS-11Aug17 설치 문서

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

천둥사용자매뉴얼 서울대학교매니코어프로그래밍연구단매니코어소프트 ( 주 ) 버전 년 4월 22일

<B0F8B4EBC0FCBBEABDC720B0EDBCD3B0E8BBEABFEB20C5ACB7AFBDBAC5CD20BDC3BDBAC5DB20C0CCBFEBBEC8B3BBBCAD2E687770>

PowerPoint 프레젠테이션

<4D F736F F D20C5EBC7D5C7D8BCAEBDC3BDBAC5DB5F D2BC0C720424D54B0E1B0FABAB8B0EDBCAD2E646F63>

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

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

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

06-슈퍼컴을(JE)

PowerPoint 프레젠테이션

[ 컴퓨터시스템 ] 3 주차 1 차시. 디렉토리사이의이동 3 주차 1 차시디렉토리사이의이동 학습목표 1. pwd 명령을사용하여현재디렉토리를확인할수있다. 2. cd 명령을사용하여다른디렉토리로이동할수있다. 3. ls 명령을사용하여디렉토리내의파일목록을옵션에따라다양하게확인할수

untitled

휠세미나3 ver0.4

Microsoft PowerPoint - eSlim SV [ ]

Level 학습 성과 내용 1수준 (이해) 1. 기본적인 Unix 이용법(명령어 또는 tool 활용)을 습득한다. 2. Unix 운영체계 설치을 익힌다. 모듈 학습성과 2수준 (응용) 1. Unix 가상화 및 이중화 개념을 이해한다. 2. 하드디스크의 논리적 구성 능력

PowerPoint 프레젠테이션

워드표준 가이드

Microsoft PowerPoint - eSlim SV [080116]

untitled

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

슬라이드 1

Microsoft PowerPoint UNIX Shell.ppt

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

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

PowerPoint 프레젠테이션

Microsoft PowerPoint - AME_InstallRoutine_ver8.ppt

<4D F736F F F696E74202D20BFEEBFB5C3BCC1A6BDC7BDC D31C7D0B1E229202D20BDA92E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - comp_prac_081223_2.pptx

Adobe Flash 취약점 분석 (CVE )

6주차.key

Microsoft PowerPoint - 사용자지침서2

Microsoft PowerPoint UNIX Shell.pptx

슬라이드 1

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

운영체제실습_명령어

문서 대제목

Solaris Express Developer Edition

Linux SHELL

/chroot/lib/ /chroot/etc/

차례 제 1 장 개요 2 제 2 장 시스템구성 4 제 3 장 사용자환경 6 1 로그인노드접속 파일시스템 제 4 장 프로그래밍환경 8 1 컴

네이버블로그 :: 포스트내용 Print VMw are 에서 Linux 설치하기 (Centos 6.3, 리눅스 ) Linux 2013/02/23 22:52 /carrena/ VMware 에서 l

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

목차 백업 계정 서비스 이용 안내...3 * 권장 백업 정책...3 * 넷하드(100G 백업) 계정 서버로 백업하는 2가지 방법...3 * 백업서버 이용시 주의사항...3 WINDOWS 서버 사용자를 위한 백업서비스 이용 방법 네트워크 드라이브에 접속하여

SRC PLUS 제어기 MANUAL

Integ

PCServerMgmt7

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

ISP and CodeVisionAVR C Compiler.hwp

Microsoft Word - CAE 클러스터 환경 구축-ABAQUS.doc

Microsoft PowerPoint - 10Àå.ppt

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

Sena Technologies, Inc. HelloDevice Super 1.1.0

Contributors: Myung Su Seok and SeokJae Yoo Last Update: 09/25/ Introduction 2015년 8월현재전자기학분야에서가장많이쓰이고있는 simulation software는다음과같은알고리즘을사용하고있다.

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

슬라이드 1

PowerPoint 프레젠테이션

10X56_NWG_KOR.indd

DocsPin_Korean.pages

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

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

Secure Programming Lecture1 : Introduction

WebtoB.hwp

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

3) MySQL data 백업백업방법 : dump 파일로저장저장위치 : /backup/mysqldump 백업주기 : 시간별 (/etc/cron.hourly) 또는일별 (/etc/cron.daily) 보관기간 : 7 일백업스크립트 : 아래예제 6-1). 참조 4) 웹데이

Microsoft PowerPoint - 02-Shell-Programming

Microsoft Word - DELL_PowerEdge_TM_ R710 서버 성능분석보고서.doc

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

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

3.Bladesystem

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

Discrete Mathematics

Microsoft PowerPoint - 권장 사양

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

Microsoft Word - zfs-storage-family_ko.doc

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

리눅스 프로세스 관리

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

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

Linux SHELL


The Pocket Guide to TCP/IP Sockets: C Version

Appendix B

Hitachi Content Platform 클라우드 & 소프트웨어정의클라우드오브젝트플랫폼 Hitachi Content Platform Hitachi Data Ingestor Hitachi Content Platform Anywhere REVISION NO

Unix & Linux 개요 Company 서울대학교통계학과 2010년 2학기컴퓨터의개념및실습 ( Thanks to: cancho & facewhite from SPARC/KAIST, Bruce La Plante fro

Microsoft Word - Generic_Gas_Simulation_BMT 결과 보고서.doc

1. 도구개요 CppUnit Testing 소개 CppUnit 는 C++ 용 testing Framework 로 Java 의 JUnit 을 C++ 로구현 C++ 언어에서사용할수있도록개발된 Open Source 프로젝트로, source code 의특정 Module 이의도

PowerPoint 프레젠테이션

Microsoft Word ARM_ver2_0a.docx

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

Transcription:

KISTI TACHYON 사용자지침서 Ver. 1.0 슈퍼컴퓨팅센터

1. 시스템사양및구성 KISTI TACHYON 사용자지침서 슈퍼컴퓨터 4호기초병렬컴퓨팅시스템 (1차분) 인 TACHYON( 타키온 ) 은 SUN의 Blade 6048 시스템으로이루어져있으며, 이론최고성능 (Rpeak) 24TFlops 제공 구분 내용 비고 제조사및모델 SUN Blade 6048 아키텍처 클러스터 블레이드타입 프로세서 시스템버스 : HyperTransport (6.4GB/sec) AMD Opteron 2.0GHz(Barcelona) L1/L2/L3 : 64KB/4*512KB/2MB on-die 노드수 컴퓨팅노드 188개 로그인노드 4개 (X4600) 디버깅노드 4개 (Blade 6048) CPU 코어수 3,008개 16개 / 노드 이론최고성능 (Rpeak) 24TFlops 메모리 DDR2/667MHz 6TB 32GB/ 노드, 2GB/ 코어 디스크스토리지 SUN X4500/STK6140 207TB 테이프스토리지 SUN SL8500 422TB Interconnection 네트워크 Infiniband 4X DDR Voltaire ISR 2012 스위치 쿨링방식 수냉식 Libert XDP/XDH 운영체제 CentOS 4.6 Kernel 2.6.9-67.0.4.ELsmp 파일시스템 Lustre 1.6.4.2 SAM-QFS 4.6 스크래치디렉터리홈디렉터리 아카이빙프로그램 SAM-QFS 4.6 작업관리프로그램 SGE 6.1-2 -

[TACHYON 시스템구성도 ] 1) 계산노드 188개의계산노드들은높은집적도를가진 4개의 Sun Blade 6048 랙에장착되어있다. 각각의 Sun Blade 6048 랙은 4개의 Shelf로구성되며, 각각의 shelf에는 12개의 x6420 블레이드노드가장착되어있음. 각각의 x6420 블레이드는 AMD사의쿼드코어 2.0GHz CPU(Barcelona) 4개와 32GB 메모리, 그리고 OS를위한 8GB CF drive와 2개의 x8 PCI-e connection으로이루어져있음 - 1 -

[SUN Blade 6048] [x6420 블레이드노드블록다이어그램 ] 2) Interconnection 네트워크 Infiniband는노드간통신을위한주백본네트워크로, 4x IB DDR을사용한 non-blocking IB 네트워크로구축되어있으며채널당 2.5GB/sec(20 Gbps) 의대역폭을가짐. IB 네트웍구성을위하여 1대의 288 port Voltaire ISR 2012 IB 스위치에모든계산노드와그외 IB 연결이필요한인프라노드들을 4X IB로연결하여 Non-Blocking IB 네트워크로구성함 [Voltaire ISR2012 IB 스위치 ] [IB 스위치후면 ] 3) 스토리지 TACHYON의스토리지시스템은 IB기반의스크래치디렉터리디스크 (SUN X4500) 130.2TB와 SAN 기반의홈디렉터리디스크 (STK 6140) 73.2TB로구성됨. 스크래치디렉터리는 Lustre 기반의공유파일시스템으로구성되어있으며, 홈디렉터리는 SAM-QFS 기반의공유파일시스템및아카이빙방식의백업시스템으로구성되어있음. SAM-QFS MDS 서버는홈디렉터리파일시스템을기반으로총 4대 (X4600) 로구성되며, HA(Active-Standby) 로구축되어최적의성능을보장함. 홈디렉터리에대한백업은 SAM-QFS 서버에의해실시간아카이빙방식의백업이수행됨. 1차아카이빙은 SAN용디스크스토리지 (STK6140) 에 2차아카이빙은테이프라이브러리에저장되며, 실시간아카이빙방식으로별도의백업윈도우를필요로하지않음. - 2 -

HSM용아카이빙은로그인노드에서사용자에의해 FTP 방식의데이터전송후자동으로아카이빙되는방식으로운영됨. [ SUN X4500 디스크및 X4600 서버 ] [SUN STK 6140 SAN 디스크 ] 2. 기본사용자환경 가. 로그인 - 사용자의초기접속은총 4대의로그인노드로한정됨 - 액세스인터페이스는 ssh, sftp, ftp, X11 만허용됨 1 유닉스혹은리눅스에서 $ ssh -l 사용자ID hostname 또는 $ ssh -l 사용자ID IP address 2 윈도우즈에서 - putty 나 SSH Secure Shell Client 등의 ssh 접속유틸리티를이용함 - 프로그램은인터넷을통해무료로다운받을수있음 - 3 -

3 노드구성 비고호스트이름 IP 주소 로그인노드 (4노드) 디버깅노드 (4노드) 컴퓨팅노드 (188노드) tachyon.ksc.re.kr DNS 대표호스트네임 tachyona.ksc.re.kr 150.183.147.213 tachyonb.ksc.re.kr 150.183.147.214 tachyonc.ksc.re.kr 150.183.147.215 tachyond.ksc.re.kr 150.183.147.216 tachyon189 컴파일및디버깅 tachyon190 컴퓨팅노드와동일한 tachyon191 tachyon192 시스템 SGE( 배치스케줄러 ) 를 tachyon001-188 통해서만작업실행가 능함 CPU Limit (Interactive Process) 10분 30분 1분 Process Resource Limit 확인 $ ulimit -a 나. 사용자쉘변경기본으로설정되는 bash에서다른 shell로변경했을경우사용자의홈디렉터리에있는해당환경설정파일을적절히수정하여사용함. 원본이필요한경우사용자가직접 /applic/shell 디렉터리에서필요한쉘의환경설정파일을자신의홈디렉터리로복사하여적절히수정하여사용함. $ ldapchsh 다. 패스워드변경 사용자패스워드를변경하기위해서는 passwd 명령을사용함 $ passwd 패스워드관련보안정책 1 사용자 password 길이를 8 character 이상설정 2 사용자 password 변경기간을 2개월로설정 3 새로운패스워드는이전패스워드와비교하여 2문자이상달라야함. 4 최대허용로그인재시도회수 :10회 - 4 -

라. 사용자계정 SRU Time 사용량확인통합슈퍼컴퓨터계정관리시스템 (ISAM) 에접속하여사용자계약정보, 배치작업사용상세내역, 총 SRU Time 사용량등을확인할수있음 $ isam 마. 작업수행시유의사항 - 로그인노드에서는 CPU time을 10분으로제한하고있기때문에프로그램수정, 디버깅및배치작업제출등의기본적인작업만수행함 - CPU time으로 10분이상소요되는디버깅및기타인터랙티브작업은디버깅노드에서수행해야함 - 홈디렉터리는용량및 I/O 성능이제한되어있기때문에, 모든계산작업은 /work01 혹은 /work02 스크래치디렉터리의사용자작업공간에서이루어져야함 바. 작업디렉터리 구분내용용량제한 홈디렉터리 /home01 스크래치디렉터리 애플리케이션디렉터리 /work01 /work02 구좌당 6GB 사용자당 1TB 파일삭제정책 - 4일이상액세스하지않은파일자동삭제 파일시스템종류 Lustre 백업유무 디렉터리마운트여부컴퓨팅노드 로그인노드 디버깅노드 /applic - - - 5 -

홈및스크래치디렉터리용량제한및사용량확인 $ quotaprint [ USER DISK USAGE IN THE HOME & SCRATCH DIR ] ================================================================ ID/GROUP DIR QUOTA_LIMIT USED_DISK AVAIL_DISK ================================================================ in1000 /home01 12573MB 10937MB 1636MB test /work01 1073740MB 54905MB 1018835MB test /work02 1073740MB 0MB 1073740MB ================================================================ 사. SAM-QFS( 데이터아카이빙 ) 홈디렉터리의용량을초과한사용자데이터를보관하기위해서 SAM-QFS 기반의데이터아카이빙을지원하며, SAM-QFS 사용법은별도의 SAM-QFS 사용자지침서 를참조할것. - 6 -

3. 사용자프로그래밍환경 KISTI TACHYON 사용자지침서 가. 프로그래밍도구설치현황 (/applic 디렉터리참조 ) 구분컴파일러 (/applic/compilers) 프로파일러 (/applic/lib.{compiler}) 디버거 (/applic/debuggers) MPI 라이브러리 (/applic/mpi) 수학라이브러리 (/applic/lib.{compiler}) 기타라이브러리 (/applic/lib.{compiler}) 분야별응용소프트웨어 (/applic/applications) 항목 PGI CDK 7.1 Intel Compiler 10.1 gcc 3.4.6.9 (/usr) TAU 2.17 TotalView 8.3 MVAPICH 1.0 OpenMPI 1.2.5 향후 MVAPICH2 지원예정 Aztec 2.1 ACML 4.0.1 ATLAS 3.6 BLAS BLACS FFTW 3.1.2 GotoBLAS 1.23 LAPACK Scalapack 1.8 Petsc 2.3.3 HDF4 4.2 HDF5 1.8 NCARG 5.0.0-9 NetCDF 3.6.2-4 VTK 5.0.4 기존보유응용소프트웨어를단계적으로설치예정 http://www.ksc.re.kr 보유자원-S/W 정보참조 나. 프로그램컴파일 본시스템에서는 GNU 컴파일러이외에 Portland Group(PGI) 컴파일러, Intel 컴파일러를지원함. 또한이들컴파일러를사용하여 MPI 라이브러리를사전에컴파일하여사용자에게제공함. 모든프로그램은 PGI, Intel, GNU 컴파일러를사용하여컴파일가능하며 MPI 환경을이용한컴파일도가능함. ( 예 : gcc, pgcc, icc, mpicc). 컴파일러에서 - 7 -

사용한옵션은 MPI 환경에서도사용할수있음. 병렬프로그래밍환경의지원을위해서, 본시스템에는 MVAPICH, OpenMPI를지원함. PGI Intel GCC 컴파일러 위치 /applic/compilers/pgi /applic/compilers/intel /usr 각컴파일러에대한자세한내용은다음웹링크참조. GCC : http://gcc.gnu.org/onlinedocs/gcc-3.4.6/gcc.pdf PGI : http://www.pgroup.com/doc/pgiug.pdf Intel : http://www.intel.com/cd/software/products/asmo-na/eng/346158.htm 1) 컴파일러환경변수 각컴파일러에맞는환경변수의자동설정을위해.bashrc와.bashrc-[mpi]-[compiler] 파일을제공함. 예를들면, pgi 컴파일러와 mvapich를사용하기위해서는.bashrc-mvapich-pgi를사용해야함. 각컴파일러별.bashrc_[mpi]_[compiler] 에는 PATH, MANPATH, LD_LIBRARY_PATH, LICENSE_FILE 등이적절히해당컴파일러환경에맞게지정되어있음. 또한 select-mpi-[bash csh] 을통해쉽게다른컴파일러환경으로변경하여사용할수있음. select-mpi-bash 을이용한컴파일러및 MPI 지정 ( 다음로그인부터적용 ) 사용법예제선택가능한 MPI 선택가능한 Compiler select-mpi-bash [MPI] [Compiler] $ select-mpi-bash mvapich pgi mvapich, openmpi gnu, intel, pgi - 8 -

2) 순차프로그램컴파일 각컴파일러로컴파일할수있는프로그램은다음과같음. 벤더 컴파일러명령 프로그램 소스확장자 pgcc C.c PGI pgcpp C++.c,.C,.cc,.cpp pgf77 F77.f,.for,.fpp,.F,.FOR pgf90/pgf95 F90/95.f,.for,.f90,.f95,.fpp,.F,.FOR,.F90,.F95 icc C.c Intel icc C++.c,.C,.cc,.cpp,.cxx,.c++ ifort F90.f,.for,.ftn,.f90,.fpp,.F,.FOR,.FTN,.FPP,.F90 GCC gcc C.c g++ C++.C,.cc,.cpp,.cxx 컴파일러별주요옵션최적화컴파일을위해다음의옵션을부여할수있음 1 GNU 컴파일러 컴파일러옵션 설명 -O[1 2 3] 오브젝트최적화. 숫자는최적화레벨 -funroll-all-loops 모든루프를 unrolling함 -ffast-math fast floating point model 사용 -minline-all-stringops 더많은 inlining 허용 -g 디버깅정보를생성 --help 옵션목록출력. 2 Intel 컴파일러 컴파일러옵션 설명 -O[1 2 3] 오브젝트최적화. 숫자는최적화레벨 -ip, -ipo 프로시저간최적화 -vec_report[0 1 2 3 4] 벡터진단정보의양을조절 -xw 타겟아키텍처 : SSE, SSE2 인스트럭션을위한코드를포함 -fast -xt -O3 -ipo -no-prec-div -static의매크로 -static 공유라이브러리를링크하지못하게함 -g fp 디버깅정보를생성 -openmp OpenMP 기반의 multi-thread 코드사용 -openmp_report[0 1 2] OpenMP 병렬화진단레벨조절 -help 옵션목록출력 권장옵션 : -O3 -axt -xw -m64 -fpic -i_dynamic - 9 -

3 PGI 컴파일러 컴파일러옵션 -O[0 1 2 3 4] -Mipa=fast -fast -fastsse -g, -gopt -mp -Minfo=mp, ipa -help 설명오브젝트최적화. 숫자는최적화레벨프로시저간최적화 -O2 -Munroll=c:1 -Mnoframe -Mlre Mautoinline 의매크로 SSE, SSE2를지원하는최적화디버깅정보를생성 OpenMP 기반의 multi-thread 코드사용 OpenMP관련정보, 프로시저간최적화옵션목록출력 컴파일러사용예제 컴파일러 예제 GNU PGI Intel gcc o test.exe O3 test.c pgcc/pgcpp/pgf95 o test.exe fast test.c/cc/f90 icc/ifort o test.exe O3 xw test.c/cc/f90 3) MPI 병렬프로그래밍 사용자가다음표의 MPI 명령을실행하게되면,.bashrc를통해지정된컴파일러에해당하는 wrapper들이소스를컴파일하게됨 컴파일러 프로그램 소스확장자 mpicc C.c mpicxx/mpicc C++.cc,.c,.cpp,.cxx mpif90 F77/F90.f,.for,.ftn,.f90,.f95,.fpp mpicc로컴파일을하더라도, 옵션은 wrapping되는본래의컴파일러에해당하는옵션을사용해야함. 사용예제 intel : mpicc/mpif90 o test.exe O2 xw test.cc/f90 pgi : mpicc/mpif90 o test.exe fast test.f90-10 -

컴퓨팅노드에서 MPI 프로그램실행 KISTI TACHYON 사용자지침서 컴퓨팅노드 (tachyon001-188) 에서 MPI 프로그램을실행하기위해서는스크래치디렉터리로작업실행에필요한파일들을스크래치디렉터리로복사한후 SUN Grid Engine(SGE : 배치작업스케줄러 ) 을사용하여배치모드로프로그램을실행해야함. 4. SUN Grid Engine 을통한작업실행 부분참조 디버깅노드에서 MPI 프로그램디버깅 디버깅노드 (tachyon189-192) 에서 MPI 프로그램을디버깅하기위해서는먼저작업실행에필요한파일들을스크래치디렉터리로복사하고디버깅노드에로그인함. MPI 프로그램의실행은 MPI 종류와관계없이 mpirun 명령을사용함. n 또는 np 옵션으로프로세스의수를지정함. -machinefile {filename} 옵션은실행할 MPI 프로세스의수만큼디버깅노드의호스트이름을지정함. [testuser01@tachyon189 /lustre1/testuser01]# cat hosts tachyon189 tachyon189 tachyon190 tachyon190 tachyon191 tachyon191 tachyon192 tachyon192 [testuser01@tachyon189 /lustre1/testuser01]# mpirun -machinefile hosts -np 8./mpi_pi Process 0 on tachyon189 pi is approximately 3.1416009869231254, Error is 0.0000083333333323 wall clock time = 0.000044 Process 0 on tachyon190 Process 1 on tachyon190 tachyon190-11 -

5) 라이브러리 본시스템에는수치계산및기타라이브러리들을별도의디렉터리에제공함. 이러한라이브러리들각각은컴파일러의이름에따라 /applic/lib.[compiler] 에설치되어있음. 구분 /applic/lib.pgi /applic/lib.intel /applic/lib.gcc 내용 pgi로컴파일된라이브러리들 intel로컴파일된라이브러리들 gcc로컴파일된라이브러리들 또한 MPI를사용하는라이브러리들의경우각 MPI Library 별로컴파일되어있음. 예를들어 gcc로컴파일된 BLACS의경우 MPI 이름에따라다음과같이세하위디렉터리를가짐. 구분 내용 /applic/lib.gcc/blacs/mvapich mvapich 로컴파일된 BLACS /applic/lib.gcc/blacs/openmpi openmpi 로컴파일된 BLACS 컴파일러환경변수파일.bashrc-[mpi]-[compiler] 에서, 사용자가필요로하는 MPI 및컴파일러에따라적절한라이브러리들의경로가 LD_LIBRARY_PATH 변수에지정됨. 6) 프로파일링 프로파일링기능을위해 TAU 를지원함. - TAU 의기본적인사용법 1. TAU API를이용해소스코드를 instrument 2. instrumented 된코드를 compile 3. 위의과정을통해만들어진바이너리를실행 4. 작업이종료후만들어진 performance file을확인 5. 위의단계에서만들어진 performance file를 visualization등을통해분석 $ pprof // text-based $ paraprof // GUI-based - 12 -

7) 디버깅 디버거를사용하기위해서, 컴파일시 g 옵션을추가함. $ icc -g -lm -o simple simple.c 다음의형식으로 Totalview 를실행시켜디버깅을수행. $ totalview executable -a command_line_args totalview의자세한사용방법은다음의웹링크참조. http://www.totalviewtech.com/documentation/latest/pdf/user_guid.pdf - 13 -

4. SUN Grid Engine(SGE) 을통한작업실행 Sun Grid Engine ( 이하 SGE) 은 Batch 작업과 Interactive 작업을효율적으로처리해주는작업스케줄러임. 가. 큐구성 큐이름 Wall Clock Limit ( 시간 ) 작업실행노드 SU 작업별 CPU수 Priority Charge Rate 비고 small 48 tachyon001-018 1-16 Low 1 16 CPU 이내작업 normal 48 tachyon001-188 17-1536 normal 1 long 168 tachyon001-188 1-128 Low 1 Long running 작업 strategy TBD tachyon001-188 32-3008 High 1 special 12 tachyon001-188 1537-3008 - 2 Grand Challenge 작업대규모자원전용 ( 사전예약 ) 사용자별최대 Runinng 작업수 : 10 개 ( 작업부하에따라수시로조정될수있음 ) 큐구성정보확인하기 $ showq 나. 작업제출및모니터링 1) 작업제출 SGE를사용하여배치작업을제출하기위해서는 job script 파일을작성하여 qsub 명령을사용해야함. 예제 job script를 /applic/shell/job_examples/job_script 디렉터리에서복사하여사용할수있음 $ qsub job_script - 14 -

Serial 프로그램 (1CPU) 작업스크립트작성예제 (serial.sh) #!/bin/bash #$ -V # 작업제출노드의쉘환경변수를컴퓨팅노드에도적용 (default) #$ -cwd # 현재디렉터리를작업디렉터리로사용 #$ -N serial_job # Job Name, 명시하지않으면 job_script 이름을가져옴 #$ -q small # Queue name #$ -R yes # Resource Reservation #$ -wd /work01/<user01>/serialtest # 작업디렉터리를설정. 현재디렉토리 (PWD) 가 # /work01/<user01>/serialtest가아닌경우사용, # 그렇지않으면 cwd로충분함 #$ -l h_rt=01:00:00 # 작업경과시간 (hh:mm:ss) (wall clock time), 누락시작업강제종료 #$ -M myemailaddress # 작업관련메일을보낼사용자메일주소 #$ -m e # 작업종료시에메일을보냄 serial.exe - 15 -

mpi 프로그램작업스크립트작성예제 (mpi.sh) 1 select-mpi-[shell] 명령어를이용하여 job 실행환경선택 $ select-mpi-bash [mvapich openmpi] [pgi intel gnu] $ exit ( exit 후다시로그인해야선택한환경으로설정됨 ) 2 MPI task(cpu) 수명시 #$ -pe mpi_fu {Total_MPI_task(CPU)} #$ -pe mpi_fu 32 #!/bin/bash #$ -V # 작업제출노드의쉘환경변수를컴퓨팅노드에도적용 (default) #$ -cwd # 현재디렉터리를작업디렉터리로사용 #$ -N mvapich_job # Job Name, 명시하지않으면 job_script 이름을가져옴 #$ -pe mpi_fu 32 # selec-bash-mpi 에서선택한 mvapich 로실행되며각노드의가용 cpu를 # 모두채워서 (fu : fill_up) 총 32개의 MPI task가실행됨. #$ -q normal # 큐이름 (17개이상의 CPU를사용하는경우에는 normal 큐를 # 16개이하 CPU를사용하는경우 small or long 큐사용 ) #$ -R yes # Resource Reservation #$ -wd /work01/<user01>/mvapich # 작업디렉터리를설정. 현재디렉토리 (PWD) 가 # /work01/<user01>/mvapich가아닌경우사용, # 그렇지않으면 cwd로충분함 #$ -l h_rt=01:00:00 # 작업경과시간 (hh:mm:ss) (wall clock time), 누락시강제작업종료 #$ -l normal # normal queue에 job실행시다른 queue보다높은 priority를 # 얻기위해반드시명시, 누락시작업강제종료 #$ -M myemailaddress # 작업관련메일을보낼사용자메일주소 #$ -m e # 작업종료시에메일을보냄 mpirun -machinefile $TMPDIR/machines -np $NSLOTS /work01/<user01>/mvapich/mpi.exe - 16 -

많은메모리를사용하는 mpi 프로그램작업스크립트작성예제 (mpi_mem.sh) #!/bin/bash #$ -V #$ -cwd #$ -N mvapich_job #$ -pe mpi_fu 32 #$ -q normal #$ -R yes #$ -l h_rt=01:00:00 #$ -l normal #$ -M myemailaddress #$ -m e #unset existing MPI affinities export MV2_USE_AFFINITY=0 export MV2_ENABLE_AFFINITY=0 export VIADEV_USE_AFFINITY=0 export VIADEV_ENABLE_AFFINITY=0 mpirun -np $NSLOTS -machinefile $TMPDIR/machines./numa.sh numa.sh #!/bin/bash #socket numbers in a compute node SPN=4 #get my MPI rank [ "x$pmi_rank"!= "x" ] && RANK=$PMI_RANK [ "x$mpi_rank"!= "x" ] && RANK=$MPI_RANK [ "x$mpirun_rank"!= "x" ] && RANK=$MPIRUN_RANK [ "x$ompi_mca_ns_nds_vpid"!= "x" ] && RANK=$OMPI_MCA_ns_nds_vpid socket=$(( ($RANK + 3) % $SPN )) echo "myrank: $RANK, mysocket: $socket, hostname: $(hostname)" /usr/bin/numactl --cpunodebind=$socket --membind=$socket./mpi.exe - 17 -

OpenMP 프로그램작업스크립트작성예제 (openmp.sh) #!/bin/bash #$ -V # 작업제출노드의쉘환경변수를컴퓨팅노드에도적용 (default) #$ -cwd # 현재디렉터리를작업디렉터리로사용 #$ -N openmp_job # Job Name, 명시하지않으면 job_script 이름을가져옴 #$ -pe openmp 4 # OpenMP thread 수 #$ -q small # Queue name(openmp 작업은 small or long 큐사용가능 ) #$ -R yes # Resource Reservation #$ -wd /work02/<user01>/openmp # 작업디렉터리를설정. 현재디렉토리 (PWD) 가 # /lustre1/<user01>/openmp가아닌경우사용, # 그렇지않으면 cwd로충분함 #$ -l h_rt=01:00:00 # 작업경과시간 (hh:mm:ss) (wall clock time), 누락시작업강제종료 #$ -M myemailaddress # 작업관련메일을보낼사용자메일주소 #$ -m e # 작업종료시에메일을보냄 export OMP_NUM_THREADS=4 /work02/<user01>/omp.exe - 18 -

Hybrid(MPI+OpenMP) 프로그램작업스크립트작성예제 (hybrid.sh) Hybird 작업수행시에는아래와같은옵션및환경변수설정에유의해야함 1 select-mpi-[shell] 명령어를이용하여 job 실행환경선택 $ select-mpi-bash [mvapich openmpi] [pgi intel gnu] $ exit ( exit 후다시로그인해야선택한환경으로설정됨 ) 2 노드당 / 전체 MPI task(cpu) 수명시 #$ -pe mpi_{mpi_task(cpu)_per_node}cpu {Total_MPI_task(CPU)} #$ -pe mpi_4cpu 16 3 MPI 타스크당 OpenMP 쓰레드수를의미하는옵션으로 OMP_NUM_THREADS 리소스지정 #$ -l OMP_NUM_THREADS={OpenMP_threads_per_MPI_task} #$ -l OMP_NUM_THREADS=4 4 MPI task 당 OpenMP thread 수를 OMP_NUM_THREADS 환경변수로명시 export OMP_NUM_THREADS=4 #!/bin/bash #$ -V # 작업제출노드의쉘환경변수를컴퓨팅노드에도적용 (default) #$ -cwd # 현재디렉터리를작업디렉터리로사용 #$ -N hybrid_job # Job Name, 명시하지않으면 job_script 이름을가져옴 #$ -pe mpi_4cpu 16 # 전체 MPI task(cpu) 16개, 노드당 MPI task(cpu) 4개 #$ -q normal # Queue name #$ -R yes # Resource Reservation #$ -wd /work02/<user01>/hybrid # 작업디렉터리를설정. 현재디렉토리 (PWD) 가 # /lustre1/<user01>/hybrid가아닌경우사용, # 그렇지않으면 cwd로충분함 #$ -l h_rt=01:00:00 # 작업경과시간 (hh:mm:ss) (wall clock time), 누락시강제작업종료 #$ -l normal # normal queue에 job실행시다른 queue보다높은 priority를 # 얻기위해반드시명시, 누락시작업강제종료 #$ -l OMP_NUM_THREADS=4 # MPI 타스크당 OpenMP 쓰레드수를의미하며, 아래 # OMP_NUM_THREADS 환경변수에서명기한 OpenMP # 쓰레드숫자와동일한값지정. 누락시작업강제종료 #$ -M myemailaddress # 작업관련메일을보낼사용자메일주소 #$ -m e # 작업종료시에메일을보냄 export OMP_NUM_THREADS=4 mpirun -machinefile $TMPDIR/machines -np $NSLOTS /work02/<user01>/hybrid.exe - 19 -

작업스크립트옵션리스트 옵션 Argument 기능 -q queue_name 작업을수행할 queue 명시 Parallel Environment를선택하고, min_proc-max_proc 개수만큼의병렬 process를수행 mpi_rr : 라운드로빈방식으로노드의 CPU 할당 mpi_fu : 각노드의비어있는 CPU를꽉채워서할당 -pe pe_name min_proc[-max_proc] mpi_[1-16]cpu : 정해진 ( 범위 : 1-16) 숫자만큼노드의 CPU 할당 openmp : 순수한 openmp 프로그램의쓰레드를위한 CPU 할당 mpi의종류 [mvapich,openmpi] 는 select-mpi-[bash,csh,ksh] 스크립트로미리선택함. -N job_name Job의이름을정해줌 -S shell (absolute path) Batch 작업의 shell을지정. 미지정시 SGE가지정한 shell 로수행 (/bin/bash) -M Email address 사용자의 email address를명시 -m {b e a s n} 언제 email notification을보낼지명시 b: Mail is sent at the beginning of the job. e: Mail is sent at the end of the job. a: Mail is sent when the job is aborted or rescheduled s: Mail is sent when the job is suspended. n: No mail is sent. (default) -V 사용자의현재 shell의모든환경변수가 qsub시에 job에적용 되도록함 -cwd 현재디렉터리를 job의 working directory로사용.(default) -o output_file Job의 stdout 결과를 output_file 로저장 -e error_file Job의 stderr 결과를 error_file 로저장 Resource limit을지정 h_rt : 작업경과예상시간 (hh:mm:ss) (wall clock time) normal : normal 큐에작업제출시 Job이높은우선순위를얻기위해반드시명시 ( -l normal 혹은 -l normal=true ) strategy : strategy 큐에작업제출시작업이높은우선순위를얻기위해반드시명시 ( -l strategy 혹은 -l strategy=true ) -l resource=value OMP_NUM_THREADS : MPI 타스크당쓰레드수를 의미하며, hybrid[mpi+openmp] 병렬 작업 실행 시 반드시명기 (-l OMP_NUM_THREADS=[MPI 타스크당 OpenMP 쓰레드수 ]) normal, strategy 큐를제외한다른큐는 -l 옵션으로기본 priority이기때문에큐이름을명시할필요없음. 추후변경 시공지예정 - 20 -

dependancy 가있는다수작업제출예제 KISTI TACHYON 사용자지침서 1 Job_A 가끝난후 Job_B 가실행되어야하는경우 # qsub Job_A.sh (Jobname 은 Job_A 라고가정 ) Your job 504 ("Job_A") has been submitted # qsub -hold_jid Job_A job_b.sh 혹은 # qsub -hold_jid 504 job_b.sh 2 Job_A 와 job_b 가끝난후 Job_C 가실행되어야하는경우 # qsub Job_A.sh (Jobname 은 Job_A 라고가정 ) Your job 504 ("Job_A") has been submitted # qsub Job_B.sh (Jobname 은 Job_B 라고가정 ) Your job 505 ("Job_B") has been submitted # qsub -hold_jid Job_A,Job_B Job_C.sh 혹은 # qsub -hold_jid 504,505 Job_C.sh 2) 작업모니터링작업제출후에, 사용자는 qstat 명령을이용하여 job의상태를모니터링할수있음 기본작업정보 $ qstat ( 사용자자신 ) job-id prior name user state submit/start at queue slots ja-task-id ----------------------------------------------------------------------------------------- 254 0.55500 work6 user1 r 04/02/2008 10:13:09 bmt.q@tachyon087 1 253 0.55500 work5 user1 r 04/01/2008 03:44:20 bmt.q@tachyon035 1 252 0.55500 work7 user1 r 04/01/2008 11:54:34 bmt.q@tachyon035 1 $ qstat -u '*' ( 모든사용자 ) 상세작업정보 $ qstat f u "*" queuename qtype used/tot. load_avg arch states ---------------------------------------------------------------------------- all.q@davinci02 BIP 1/4 0.14 lx24-amd64 257 0.55500 sleep root r 04/01/2008 10:49:54 1 ---------------------------------------------------------------------------- all.q@davinci03 BIP 1/4 0.13 lx24-amd64 258 0.55500 sleep root r 04/01/2008 10:49:54 1 ---------------------------------------------------------------------------- all.q@davinci04 BIP 2/4 0.01 lx24-amd64 256 0.55500 sleep root r 04/01/2008 10:49:54 1 261 0.55500 sleep sgeadmin r 04/01/2008 10:50:09 1 ---------------------------------------------------------------------------- all.q@grid01 BIP 1/4 0.36 lx24-amd64 259 0.55500 sleep sgeadmin r 04/01/2008 10:50:09 1-21 -

Pending 작업에대한상세정보 [Pending 이유 ] 출력 $ qstat -j $ qstat -j job_id Option Result no option 명령을실행한사용자 job 의상세 list 를보여줌 -f 명령을실행한사용자에대한 queue와 job의상세리스트를보여줌 -u user_id 명시한 user_id에대한상태를보여줌. u "*" 는전체사용자의상태를보여줌. 주로 f 옵션과함께쓰임. -r Job의 resource requirement를 display -ext Job 의 Extended information 을 display -j <jobid> Pending/running job 에대한 information 을보여줌 -qs {a c d o s u A C D E S} 명시한 status 에있는 job 을 display -t Job 의 subtask 에대한추가정보 display [ qstat 옵션 ] 3) 노드상태모니터링 $ showhost HOSTNAME ARCH NCPU(AVAIL/TOT) LOAD MEMTOT MEMUSE SWAPTO SWAPUS ----------------------------------------------------------------------------------- tachyon001 lx24-amd64 0/16 16.03 31.4G 2.7G 0.0 0.0 tachyon002 lx24-amd64 0/16 16.00 31.4G 3.7G 0.0 0.0 tachyon003 lx24-amd64 0/16 16.04 31.4G 3.7G 0.0 0.0 tachyon004 lx24-amd64 0/16 16.03 31.4G 3.7G 0.0 0.0 tachyon005 lx24-amd64 1/16 15.53 31.4G 3.6G 0.0 0.0 tachyon006 lx24-amd64 0/16 16.00 31.4G 3.7G 0.0 0.0 tachyon007 lx24-amd64 0/16 16.01 31.4G 3.7G 0.0 0.0 tachyon008 lx24-amd64 2/16 14.03 31.4G 3.4G 0.0 0.0 tachyon009 lx24-amd64 0/16 16.00 31.4G 3.7G 0.0 0.0 tachyon010 lx24-amd64 0/16 16.03 31.4G 3.7G 0.0 0.0 tachyon011 lx24-amd64 0/16 16.03 31.4G 3.7G 0.0 0.0 tachyon012 lx24-amd64 0/16 16.02 31.4G 3.7G 0.0 0.0 tachyon013 lx24-amd64 0/16 16.03 31.4G 3.7G 0.0 0.0-22 -

4) 작업제어 작업삭제사용자는 qdel 명령을이용하여 pending/running job을 queue로부터삭제할수있음 $ qdel <jobid> : 해당 <jobid> 를가지는작업삭제 $ qdel -u <username> : <username> 의모든작업삭제 작업 suspend/resume 사용자는 qmod 명령을이용하여 running 상태의 job을 suspend/resume 할수있음 $ qmod -sj <jobid> # suspend job $ qmod usj <jobid> # unsuspend(resume) job - 23 -

사용자지원 - 일반기술지원 : 홍태영, 042) 869-0667, tyhong@kisti.re.kr - 응용기술지원 : 정민중, 042) 869-0632, jeong@kisti.re.kr - 시스템계정 : 김성준, 042) 869-0636, sjkim@kisti.re.kr - 사용자교육 : 이홍석, 042) 869-0579, hsyi@kisti.re.kr - 홈페이지 : http://www.ksc.re.kr - 24 -