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

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

ISP and CodeVisionAVR C Compiler.hwp

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

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

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

슬라이드 1

Studuino소프트웨어 설치

목 차 1. 드라이버 설치 설치환경 드라이버 설치 시 주의사항 USB 드라이버 파일 Windows XP에서 설치 Windows Vista / Windows 7에서 설치 Windows

PowerPoint 프레젠테이션

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

Install stm32cubemx and st-link utility

Microsoft PowerPoint - 권장 사양

Microsoft Word - src.doc

PowerPoint 프레젠테이션

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

Microsoft Word - zfs-storage-family_ko.doc

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot)

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

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

APOGEE Insight_KR_Base_3P11

PowerPoint 프레젠테이션

Windows 8에서 BioStar 1 설치하기

Integ

비디오 / 그래픽 아답터 네트워크 만약에 ArcGolbe를 사용하는 경우, 추가적인 디스크 공간 필요. ArcGlobe는 캐시파일을 생성하여 사용 24 비트 그래픽 가속기 Oepn GL 2.0 이상을 지원하는 비디오카드 최소 64 MB 이고 256 MB 이상을 메모리

Microsoft Word - Armjtag_문서1.doc

PowerPoint 프레젠테이션

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

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

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

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

Keil Flexlm 라이선스 설명서

슬라이드 1

Dell과 함께라면 가능합니다. 처음 도입하는 서버 또는 두 번째로 도입하는 서버이거나 네트워크를 확장시키거나 관리 기능을 강화하는 등의 모든 요구 사항을 Dell은 지원할 수 있습니다. Dell은 특성이 각기 다른 모든 조직과 회사마다 서로 다른 시점에 서로 다른 요

목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault

Tcl의 문법

untitled

View Licenses and Services (customer)

..,. Job Flow,. PC,.., (Drag & Drop),.,. PC,, Windows PC Mac,.,.,. NAS(Network Attached Storage),,,., Amazon Web Services*.,, (redundancy), SSL.,. * A

Microsoft PowerPoint - AME_InstallRoutine_ver8.ppt

Adobe Flash 취약점 분석 (CVE )

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

3.Bladesystem

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

Microsoft PowerPoint - Infiniband 20Gb 40Gb Switch HCA (??_1).ppt [Compatibility Mode]

tiawPlot ac 사용방법

PathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.

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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

SBR-100S User Manual

<4D F736F F D20C5EBC7D5C7D8BCAEBDC3BDBAC5DB5F D2BC0C720424D54B0E1B0FABAB8B0EDBCAD2E646F63>


1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

기존에 Windchill Program 이 설치된 Home Directory 를 선택해준다. 프로그램설치후설치내역을확인해보면 Adobe Acrobat 6.0 Support 내역을확인할수 있다.

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

Mango220 Android How to compile and Transfer image to Target

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

Sena Technologies, Inc. HelloDevice Super 1.1.0

SIGIL 완벽입문

PowerPoint 프레젠테이션

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

vRealize Automation용 VMware Remote Console - VMware

NTD36HD Manual

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO

Microsoft PowerPoint UNIX Shell.ppt

Microsoft Word - codevision사용법_pdf버전.docx

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

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

메일서버등록제(SPF) 인증기능적용안내서 (Exchange Windows 2000) OS Mail Server SPF 적용모듈 작성기준 Windows Server 2000 Exchange Server 2003 GFI MailEssentials 14 for

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

server name>/arcgis/rest/services server name>/<web adaptor name>/rest/services ArcGIS 10.1 for Server System requirements - 지

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

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

ODS-FM1

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

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

Mango-E-Toi Board Developer Manual

SBR-100S User Manual

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

PowerPoint Template

Sun Java System Messaging Server 63 64

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

Microsoft Word _whitepaper_latency_throughput_v1.0.1_for_

RemoteAR 정보 사용설명서 소프트웨어정보 매뉴얼정보 기본정보

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

vm-웨어-앞부속

RealDSP UT 프로그램 메뉴얼

1. GigE Camera Interface를 위한 최소 PC 사양 CPU : Intel Core 2 Duo, 2.4GHz이상 RAM : 2GB 이상 LANcard : Intel PRO/1000xT 이상 VGA : PCI x 16, VRAM DDR2 RAM 256MB

Solaris Express Developer Edition

CONTENTS 목차 1. 전원 및 설치시 주의사항 2 2. 시스템 사용시 바른 자세 4 3. 시스템 구성품 확인 5 슬림형 케이스1 6 슬림형 케이스2 7 타워형 케이스1 8 타워형 케이스2 9 일체형 케이스1 10 망분리형 케이스 시스템 시작 및 종료

PowerPoint 프레젠테이션

슬라이드 1

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

Transcription:

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

차례 제 1 장 개요 2 제 2 장 시스템구성 4 제 3 장 사용자환경 6 1 로그인노드접속................................ 6 2 파일시스템................................... 7 3 응용소프트웨어사용.............................. 8 제 4 장 프로그래밍환경 9 1 컴파일러..................................... 9 2 병렬프로그래밍모델.............................. 9 2.1 MPI 사용................................. 10 2.2 SnuCL 사용................................ 11 3 라이브러리.................................... 12 4 개발도구..................................... 14 제 5 장 thor를사용한프로그램실행 15 1 개요........................................ 15 2 작업추가..................................... 16 3 작업확인..................................... 18 4 작업삭제..................................... 20 5 쿼터확인..................................... 20 6 참고........................................ 20 제 6 장 thor 웹인터페이스 22 1

제 1 장 개요 천둥은계산노드 56대, 스토리지노드 4대, 로그인노드 2대로이루어진이종클러스터 (heterogeneous cluster) 입니다. 천둥의각계산노드에는 8코어 CPU 2개와 GPU 4대가함께장착되어있습니다. OpenCL (Open Computing Language) 로 GPU에서범용계산을수행하는프로그램을작성하고천둥에서실행할수있습니다. 나아가 MPI (Message Passing Interface) 나 SnuCL을사용하여여러노드에서병렬로실행되는프로그램을작성할수있습니다. ( 물론 CPU만을사용하는프로그램도실행가능합니다.) 천둥의계산노드 56대중 48대가일반사용자에게공개되어있어, 최대 CPU 768코어와 GPU 192대, 메인메모리 6144 GB를동시에사용할수있습니다. 이들의이론최대성능치 (theoretical peak, Rpeak) 는 194 TFLOPS에이릅니다. 사용자는로그인노드에접속한다음천둥에설치된클러스터관리소프트웨어인 thor 1 를사용해계산노드에서프로그램을실행할수있습니다. 로그인노드와계산노드는모두스토리지노드가제공하는 88 TB 규모의 Lustre 파일시스템을공유하고있습니다. 따라서로그인노드에서프로그램을작성하고데이터를저장하면, 계산노드에서바로그프로그램을실행하고데이터를불러올수있습니다. thor를사용하지않고계산노드에직접접근하는것은불가능합니다. 로그인노드와계산노드는각각다음의용도로사용할수있습니다. 로그인노드 프로그램작성및컴파일 계산량이적은간단한프로그램실행 : 로그인노드에서는 CPU 시간이 10 분이넘어가는프로그램은자동으로종료됩니다. 1) 토르 (thor) 는북유럽신화에나오는천둥의신이름입니다. 2

인터넷연결이필요한파일업로드 다운로드등의작업 : 계산노드는인터넷에연결되어있지않습니다. 계산노드 계산량이많은프로그램실행 GPU를범용계산에사용하는프로그램실행 : 로그인노드에서는 GPU를사용할수없습니다. 여러노드를동시에사용하는프로그램실행본매뉴얼은다음과같이구성됩니다. 2장에서는천둥의구성과사양을설명합니다. 3장에서는사용자계정으로천둥의로그인노드에접속하고파일시스템을사용하는방법등기본적인사용자환경을안내합니다. 4장은작성한프로그램을컴파일하고라이브러리와링크하는방법을설명합니다. 5장에서는 thor를사용해계산노드에서프로그램을실행하는방법을, 6장에서는 thor의웹인터페이스를사용해사용자정보를확인하는방법을설명합니다. 본매뉴얼에나와있지않은사항은천둥홈페이지의사용안내와 FAQ(Frequently Asked Questions) 를참고하시거나메일로문의해주시기바랍니다. 3

제 2 장 시스템구성 그림 2.1 은천둥의시스템구성을나타냅니다. 각노드의사양은표 2.1 에정리되어있 습니다. Ethernet switches c00 c16 c32 c48 c01 c17 c33 c02 c18 c34 c55 c03 c19 c35 s0 master 147.46.219.87 s1 login0 147.46.219.141 c14 c30 c46 s2 login1 147.46.219.242 c15 c31 c47 s3 IB switch IB switch IB switch IB switch IB switch Level 1 switches IB switch IB switch Level 2 switches InfiniBand 4x QDR (40Gb/s) interconnection network 그림 2.1: 천둥의시스템구성. c00 c55는계산노드, s0 s3은스토리지노드, login0 login1은로그인노드입니다. 모든노드는 InfiniBand 4x QDR 네트워크와 Gigabit Ethernet 네트워크로연결되어있습니다. login0 login1은서울대학교학내망을통해인터넷에연결되어있습니다. 4

표 2.1: 천둥노드사양 항목 내용 계산노드 (c00 c55) CPU 2 Intel Xeon E5-2650 (Sandy Bridge-EP, 8-core 2.00GHz) GPU 4 AMD Radeon HD 7970 메인메모리 128GB (DDR3 1,600MHz) InfiniBand Single-port Mellanox InfiniBand QDR HCA 운영체제 Red Hat Enterprise Linux 6.3 이론최대성능치 노드당 4.044 TFLOPS 스토리지노드 (s0 s3) s0: MDS (metadata server); s1 s3: OSS (object storage server) CPU 2 Intel Xeon E5-2620 (Sandy Bridge-EP, 6-core 2.00GHz) 메인메모리 128GB (DDR3 1,333MHz) 하드디스크 s0: 16 300GB (SA-SCSI, 15,000RPM) s1 s3: 16 2TB (SATA3, 7,200RPM) RAID s0: RAID 10 (4G cache RAM) s1 s3: RAID 6 (4G cache RAM) InfiniBand 2 Dual-port Mellanox InfiniBand QDR HCA 운영체제 Red Hat Enterprise Linux 6.3 파일시스템 Lustre 2.3 로그인노드 (login0 login1) CPU 2 Intel Xeon E5-2620 (Sandy Bridge-EP, 6-core 2.00GHz) 메인메모리 64GB (DDR3 1,333MHz) InfiniBand Single-port Mellanox InfiniBand QDR HCA 운영체제 Red Hat Enterprise Linux 6.3 5

제 3 장 사용자환경 로그인노드에는 Red Hat Enterprise Linux 6.3이설치되어있으므로기본적인사용방법은일반적인리눅스서버와동일합니다. 여기서는천둥사용을위해사용자가특별히알아야할내용을위주로설명합니다. 리눅스쉘의일반적인사용법에대해서는별도로다루지않으니관련서적혹은웹사이트를참고하십시오. 1 로그인노드접속 홈페이지에서계정신청후발급받은아이디와패스워드를사용해 SSH로로그인할수있습니다. 로그인노드정보는표 3.1을참고하십시오. 윈도사용자는 PuTTY나 Xshell 등의무료 SSH 클라이언트 ( 단 Xshell은개인및학교사용자한정 ) 를사용해접속하실수있습니다. 리눅스사용자는터미널에서 ssh 명령을사용합니다. 포트는 22번혹은 2222번을중하나를사용하실수있습니다. 표 3.1: 로그인노드목록이름도메인 IP 주소 SSH 포트 login0 chundoong0.snu.ac.kr 147.46.219.141 22, 2222 login1 chundoong1.snu.ac.kr 147.46.219.242 22, 2222 서울대학교학내망의정책상위의 IP 및도메인이일시적으로차단될수있습니다. 이경우표 3.2와같이다른 IP 및도메인을사용해우회하여접속해보시기바랍니다. 접속차단이계속되면메일로문의하여주시기바랍니다. 계정발급후처음로그인을하셨다면 passwd 명령을사용해패스워드를바꿔주시기바랍니다. 보안을위해패스워드는가급적알파벳대문자, 소문자, 숫자, 특수문자가 6

표 3.2: 로그인노드우회 IP 및도메인이름도메인 IP 주소 login0 chundoong0a.snu.ac.kr 147.46.219.101 cnundoong0b.snu.ac.kr 147.46.219.107 chundoong0c.snu.ac.kr 147.46.219.112 chundoong0d.snu.ac.kr 147.46.219.113 chundoong0e.snu.ac.kr 147.46.219.240 chundoong0f.snu.ac.kr 147.46.219.241 login1 chundoong1a.snu.ac.kr 147.46.219.243 cnundoong1b.snu.ac.kr 147.46.219.244 chundoong1c.snu.ac.kr 147.46.219.245 chundoong1d.snu.ac.kr 147.46.219.246 chundoong1e.snu.ac.kr 147.46.219.247 chundoong1f.snu.ac.kr 147.46.219.248 조합된의미없는문자열로설정해주시기바랍니다. 모든사용자계정은기본값으로 bash 쉘을사용하도록설정되어있습니다. 본매뉴 얼도 bash 쉘을기준으로하여천둥사용법을설명합니다. 2 파일시스템 로그인노드와계산노드는 Lustre 파일시스템을통해 /home 과 /scratch 를공유하고있 습니다. 사용자는자신의홈디렉터리 /home/user id 와스크래치디렉터리 /scratch/user id 를사용할수있습니다. 홈디렉터리는 1 인당최대 64 GB 까지사용할수있습니다. 스크 래치디렉터리는 1 인당최대 2 TB 까지사용가능하되, 7 일이상사용하지않은파일은 임의로삭제될수있습니다. 통상홈디렉터리는사용자프로그램이나설정파일등오 래보존해야할파일을저장하는용도로, 스크래치디렉터리는프로그램실행에필요한 대용량데이터를임시로저장하는용도로사용합니다. 이상의내용을요약하면표 3.3 과같습니다. 현재자신이사용중인용량은다음과같이확인할수있습니다. [ user _ id@login0 ~]$ lfs quota -u user _id / home [ user _ id@login0 ~]$ lfs quota -u user _id / scratch 로그인노드에 SFTP 로접속해홈디렉터리나스크래치디렉터리에파일을업로드 7

표 3.3: 파일시스템분류파티션사용자디렉터리용량제한비고 홈디렉터리 /home /home/user id 64 GB (44 TB) 스크래치 /scratch /scratch/user id 2 TB 7 일이상사용하지않은 디렉터리 (44 TB) 파일은임의로삭제가능 다운로드할수있습니다. 윈도사용자는 WinSCP 나 FileZilla 등의무료 SFTP 클라이 언트를사용해접속하실수있습니다. 리눅스사용자는터미널에서 scp 명령을사용합 니다. 3 응용소프트웨어사용 천둥에는표 3.4 와같이과학연산을위한응용소프트웨어가설치되어있습니다. 각 소프트웨어의자세한사용법은해당소프트웨어의매뉴얼을참고하시기바랍니다. 표 3.4: 천둥에설치된응용소프트웨어목록소프트웨어버전설치경로 DDSCAT 7.2.2 /opt/software/ddscat FDS-SMV FDS 5.5.3, SMV 5.6 /opt/software/fds Gromacs 4.6 /opt/software/gromacs Harminv 1.3.1 /opt/software/harminv Meep 1.2 /opt/software/meep NAMD 2.9 /opt/software/namd OpenFOAM CentFOAM 2.2.x /opt/software/openfoam R 3.0.1 /opt/software/r 8

제 4 장 프로그래밍환경 1 컴파일러 천둥에설치된컴파일러는표 4.1 과같습니다. 표 4.1: 천둥의컴파일러목록 컴파일러 버전 컴파일명령 C C++ Fortran GCC 4.4.6 gcc g++ gfortran LLVM + Clang 3.2 clang clang++ 2 병렬프로그래밍모델 병렬프로그래밍모델은병렬프로그램이어떻게작성되어야하는지규정하고이를뒷받침하는실행시스템 (runtime system) 과라이브러리를제공합니다. CPU 코어하나에서실행되는프로그램을작성할때는별도의프로그래밍모델이필요치않습니다. 하지만프로그램을 (1) 여러 CPU 코어에서병렬로실행하거나, (2) GPU에서실행하거나, (3) 여러노드에서병렬로실행할때는이에맞는병렬프로그래밍모델이필요합니다. 표 4.2는현재천둥에서사용할수있는병렬프로그래밍모델을정리한것입니다. 표 4.3 은각병렬프로그래밍모델을사용한프로그램을컴파일하는방법을요약한것입니다. 9

표 4.2: 천둥에서사용가능한병렬프로그래밍모델프로그래밍병렬화단계언어지원컴파일러지원 모델 CPU 코어 GPU 노드 C/C++ Fortran GCC LLVM Pthreads OpenMP OpenCL MPI SnuCL 표 4.3: 병렬프로그래밍모델사용 프로그래밍 C/C++ Fortran 모델헤더파일컴파일옵션헤더파일컴파일옵션 Pthreads pthread.h -pthread OpenMP omp.h -fopenmp -fopenmp OpenCL CL/opencl.h -lopencl MPI mpi.h 2.1 절참고 mpif.h 2.1 절참고 SnuCL CL/opencl.h 2.2 절참고 2.1 MPI 사용 천둥에는 MVAPICH2 1.9b 와 Open MPI 1.6.4 의 2 가지 MPI 구현이설치되어있으며, 각각은다시 GCC 4.4.6 를사용하는버전과 LLVM 3.2 를사용하는버전으로나뉘어져있 습니다. mpi-selector-menu 명령을사용하면이중에서어느버전을사용할지선택할 수있습니다. 다음은 MVAPICH2 1.9b 의 GCC 4.4.6 버전을선택하는예입니다. [ user _ id@login0 ~]$ mpi - selector - menu Current system default : openmpi -1.6.4_gcc -4.4.6 Current user default : < none > " u" and " s" modifiers can be added to numeric and " U" commands to specify " user " or " system - wide ". 1. mvapich2-1.9b_gcc -4.4.6 2. mvapich2-1.9b_llvm -3.2 3. openmpi -1.6.4_gcc -4.4.6 4. openmpi -1.6.4_llvm -3.2 U. Unset default Q. Quit Selection (1-4[us], U[us], Q): 1u 10

Current system default : openmpi -1.6.4_gcc -4.4.6 Current user default : mvapich2-1.9b_gcc -4.4.6 " u" and " s" modifiers can be added to numeric and " U" commands to specify " user " or " system - wide ". 1. mvapich2-1.9b_gcc -4.4.6 2. mvapich2-1.9b_llvm -3.2 3. openmpi -1.6.4_gcc -4.4.6 4. openmpi -1.6.4_llvm -3.2 U. Unset default Q. Quit Selection (1-6[us], U[us], Q): q WARNING : Changes made to mpi - selector defaults will not be visible until you start a new shell! 실행후에는쉘을새로시작해야 (SSH 접속을종료했다가다시로그인해야 ) 선택한내용이반영됩니다. 사용자가아무것도선택하지않으면기본적으로 Open MPI 1.6.4 의 GCC 4.4.6 버전이사용됩니다. MPI를사용한프로그램은 mpicc, mpic++, mpif90 명령을사용해컴파일합니다. 2.2 SnuCL 사용 SnuCL은서울대학교매니코어프로그래밍연구단에서개발한프로그래밍모델로, 여러노드에속한 CPU와 GPU가모두단일시스템에장착된것처럼가정하고 OpenCL 프로그램을작성할수있게해줍니다. 자세한설명은 http://aces.snu.ac.kr/center_ for_manycore_programming/snucl.html을참고하십시오. SnuCL을사용하기위해서는우선 ~/.bashrc 파일에다음의두줄을추가한다음, 쉘을새로시작하거나 source ~/.bashrc 명령을실행해추가한내용을반영합니다. $PATH를설정할때 $SNUCLROOT/bin이 $PATH보다먼저나와야함을유의하십시오. export export PATH = $SNUCLROOT / bin : $PATH LD_ LIBRARY _ PATH = $SNUCLROOT / lib : $LD _ LIBRARY _ PATH 다음과같은형식으로 Makefile 을작성한다음 make 명령을실행하면프로그램이컴 파일됩니다. 여기서 <program name> 과 <source files> 에는컴파일결과생성될실행 파일의이름과소스코드파일리스트가들어갑니다. 11

EXECUTABLE : = < program name > CCFILES : = < source files > cluster := 1 include $( SNUCLROOT )/ common.mk SnuCL은노드간통신을위해내부적으로 mpi-selector-menu 명령으로선택한 MPI 버전을사용합니다. 가급적 Open MPI 1.6.4의 GCC 4.4.6 버전을사용하시기를권장합니다. SnuCL의 OpenCL 커널컴파일러와충돌이일어날수있어 LLVM 버전은사용할수없습니다. 3 라이브러리 천둥에는이종클러스터용프로그램개발에필요한여러가지라이브러리가준비되어있습니다. 라이브러리는표 4.4와같이각컴파일러마다별도로설치되어있으므로, 사용할컴파일러에맞는버전을선택하십시오. 표 4.4: 라이브러리설치경로 컴파일러 항목 경로 GCC 4.4.6 헤더파일 /opt/library/gcc-4.4.6/include 라이브러리파일 /opt/library/gcc-4.4.6/lib LLVM 3.2 헤더파일 /opt/library/llvm-3.2/include 라이브러리파일 /opt/library/llvm-3.2/lib 라이브러리사용을위해서는다음설정이필요합니다. $LD LIBRARY PATH 환경변수에라이브러리파일경로를추가합니다. 예를들어 GCC 4.4.6 을사용할경우 ~/.bashrc 파일에다음의내용을추가한다음쉘을새로 시작하거나 source ~/.bashrc 명령을실행해줍니다. export LD_ LIBRARY _ PATH =\ $LD _ LIBRARY _ PATH :/ opt / library /gcc -4.4.6/ lib 프로그램을컴파일할때 -I 옵션으로헤더파일경로를, -L 옵션으로라이브러리 파일경로를지정합니다. 예를들어 GCC 4.4.6 을사용할경우다음과같이옵션을 추가합니다 : -I/opt/library/gcc-4.4.6/include -L/opt/library/gcc-4.4.6/lib 12

프로그램을컴파일할때 -l 옵션으로라이브러리파일을링크합니다. 표 4.5 를 참고하시기바랍니다. 천둥에설치된라이브러리목록은표 4.5 와같습니다. 각라이브러리의자세한사용 법은해당라이브러리의매뉴얼을참고하시기바랍니다. 표 4.5: 천둥에설치된라이브러리목록 라이브러리 버전 링크옵션 컴파일러지원 GCC LLVM Linear algebra ACML 5.3.0 -lacml -lacml mp APPML 1.8.291 -lclamdfft.runtime -lclamdblas ATLAS 3.10.1 -latlas LAPACK 3.4.2 -llapack OpenBLAS 0.2.6 -lopenblas ScaLAPACK 2.0.2 -lscalapack FFT FFTW2 2.1.5 -lfftw FFTW3 3.3.3 -lfftw3 -lfftw3f 수학함수 GMP 5.1.1 -lgmp GSL 1.9 -lgsl MPFR 3.1.1 -lmpfr 기타 HDF4 4.2.9 -ldf -lmfhdf HDF5 5-1.8.10 -lhdf5 NetCDF 4.2.1.1 -lnetcdf NetCDF-CXX 4.2 -lnetcdf c++4 NetCDF-Fortran 4.2 -lnetcdff 13

4 개발도구 천둥에는표 4.6 과같이프로그램개발에필요한여러가지소프트웨어가설치되어 있습니다. 각소프트웨어의자세한사용법은해당소프트웨어의매뉴얼을참고하시기 바랍니다. 표 4.6: 천둥에설치된개발도구목록개발도구버전실행명령 컴파일러및인터프리터 Java 1.6.0 24 javac Perl 5.10.1 perl Python 2.6.6 python 프로파일러 AMD APP Profiler a 2.5 sprofile tau b 2.22.1 버전관리 CVS 1.11.23 cvs git 1.7.1 git Mercurial 2.5.2 hg Subversion 1.6.11 svn 텍스트처리 ANTLR 2.7.7 antlr Bison 2.4.1 bison Flex 2.5.35 flex Lex 2.5.35 lex Yacc 1.9 yacc a /opt/amdapp/amdappprofiler-2.5/x86 64 를 $PATH 환경변수에추가한다음사용할수있습니다. b 각컴파일러마다별도로설치되어있습니다. 설치경로는 /opt/library/(compiler)/tau 의꼴입니다. ( 예 : GCC 4.4.6 버전의경우 /opt/library/gcc-4.4.6/tau.) 14

제 5 장 thor 를사용한프로그램실행 1 개요 프로그램이노드에장착된계산자원을최대한활용하고다른사용자의프로그램으로인한성능저하가발생하지않도록, thor는천둥의각노드에서한번에하나의프로그램만을실행시킵니다. 사용자가프로그램실행을요청하면 thor는이를작업큐에추가하고, 빈노드 ( 즉, 프로그램이실행되지않고있는노드 ) 가생길때마다먼저추가된작업부터순차적으로할당해실행시킵니다. 그림 5.1은 thor를사용한작업추가와할당과정을나타냅니다. c00 c01 c02 c03 c04 c05 작업할당 작업큐 작업추가 c46 c47 그림 5.1: thor 를사용해계산노드에서프로그램을실행시키는과정. 15

2 작업추가 thorq --add 명령을사용해작업큐에새로운작업을추가할수있습니다. 다음과같은 형태로실행합니다. [ user _ id@login0 ~]$ thorq --add -- mode [ mode ] [ options ] executable _ file [ arg1 arg2...] [mode] 에는실행시킬프로그램의종류에따라다음의세가지중하나가들어갑니다. single: 단일노드를위해작성된프로그램을실행합니다. mpi: MPI를사용해작성된프로그램을여러노드혹은프로세스에서실행합니다. snucl: SnuCL을사용해작성된프로그램을여러노드에서실행합니다. [options] 에는다음과같은옵션이들어갈수있습니다. 옵션사이는공백으로구분됩니다. --nodes [num nodes]: mode로 mpi나 snucl을사용하는경우, 프로그램을몇개의노드에서실행할지를지정합니다. snucl의경우이는 host node와 compute node 를모두합한개수를의미합니다. 예를들어 host node와 compute node 4대에서프로그램을실행하려면노드개수를 5로설정합니다. --slots [num slots]: mode로 mpi를사용하는경우, 각노드에서몇개의 MPI 프로세스를실행할지를결정합니다. 지정하지않을경우기본값은 1입니다. --device [cpu gpu]: 프로그램이 CPU만사용할지 (cpu) CPU와 GPU를모두사용할지 (gpu) 결정합니다. 이옵션을 cpu로주면 OpenCL 프로그램에서 GPU를사용할수없게됩니다. 이옵션에따라쿼터가다른비율로차감됩니다. 지정하지않을경우기본값은 cpu입니다. --base-dir [here home]: 프로그램내에서상대경로로파일에접근할때어느디렉터리를기준으로할지결정합니다. here로주면현재 thorq를실행하는디렉터리를, home으로주면 /home/user id 디렉터리를기준으로합니다. 예를들어 thorq를 /home/user id/test 디렉터리에서실행하였고프로그램내에서 foo.txt 파일에접근하는경우, 이옵션을 here로주면 /home/user id/test/foo.txt 파일을, home으로주면 /home/user id/foo.txt 파일을읽어오게됩니다. 16

지정하지않을경우기본값은 here 입니다. --timeout [seconds]: 프로그램이지정된시간내에끝나지않을경우강제종료 하게만듭니다. 이옵션을사용하면프로그램에버그가있어무한루프에빠지더라 도쿼터가무한히차감되는것을방지할수있습니다. 값은초단위로지정합니다. 지정하지않을경우프로그램은쿼터가모두소진될때까지계속실행됩니다. --name [job name]: 현재추가하는작업을식별할수있는이름을지정합니다. 지정하지않으면작업에부여된일련번호가이름으로사용됩니다. executable file 은실행파일의이름이며, 그뒤에는실행시주어질인자가들어 갑니다. MPI 나 SnuCL 를사용하는경우, executable file 에는 mpirun, snuclrun 등의 스크립트가아닌실행파일이름을바로지정합니다. thor 가내부적으로 mpirun 혹은 snuclrun 스크립트를사용해프로그램을실행시킬것입니다. 다음은 bin/a.out 이라는파일에 10 20 30 을인자로줘서실행시키며 MPI 를사용해실행하고 노드 10 대에서 CPU 와 GPU 를모두사용하고 실행후 100 초가지난다음프로그램을강제종료하며 작업의이름을 thorq test 라고지정하는 경우의예시를나타냅니다. 성공적으로작업이추가된경우해당작업에부여된 일련번호 ( 예시의경우 229 번 ) 가출력됩니다. [ user _ id@login0 ~]$ thorq --add -- mode mpi -- nodes 10 -- device gpu -- timeout 100 -- name thorq _ test bin /a. out 10 20 30 Enqueue a new job : Name : thorq _ test Mode : mpi Number of nodes : 10 Device : CPU & GPU Base directory : here Timeout : 100 Task : / home / user _id/bin /a. out 10 20 30 Path : / home / user _id Command string : thorq -- add -- mode mpi -- nodes 10 -- device gpu -- timeout 100 -- name thorq _ test bin /a. out 10 20 30 ========================================= Task 229 is enqueued. 17

thor에의해프로그램실행이완료되면, thorq --add 명령을실행했던디렉터리에 (name).stdout, (name).stderr 파일이생성됩니다. 이파일은프로그램이 stdout( 표준출력 ) 과 stderr( 표준에러 ) 로출력한내용을저장하고있습니다. (name) 은 --name 옵션을사용해지정한이름이며, 이름을지정하지않은경우작업의일련번호가 task 229 와같은형식으로들어갑니다. 3 작업확인 thorq --stat 명령을사용하면특정작업이현재작업큐에서대기중인지 (Enqueued), 계산노드에할당되어실행중인지 (Running), 혹은실행이완료되었는지 (Finished) 확인할수있습니다. 다음은작업큐에서대기중인 229 번작업의상태를확인하는예 입니다. [ user _ id@login0 ~]$ thorq -- stat 229 ================================================================== ID : 229 Name : thorq _ test Status : Enqueued Enqueued : 2013-03 -22 17:25:25 Executed : Finished : Assigned nodes : Device : CPU & GPU # of nodes : 10 Command string : thorq -- add -- mode mpi -- nodes 10 -- device gpu -- timeout 100 -- name thorq _ test bin /a. out 10 20 30 ================================================================== 다음은 229 번작업의실행이완료된후에 thorq --stat 명령을사용한예입니다. 이경우 Finished 뒤에작업이어떻게완료되었는지를나타내는메시지가출력됩니다. [ user _ id@login0 ~]$ thorq -- stat 229 ================================================================== ID : 229 Name : thorq _ test Status : Finished ( success ) Enqueued : 2013-03 -22 17:25:25 Executed : 2013-03 -22 17:25:35 Finished : 2013-03 -22 17:25:50 Assigned nodes : c00, c01, c02, c03, c04, c05, c06, c07, c08, c09 Device : CPU & GPU # of nodes : 10 18

Command string : thorq -- add -- mode mpi -- nodes 10 -- device gpu -- timeout 100 -- name thorq _ test bin /a. out 10 20 30 ================================================================== Finished 뒤에나오는메시지는다음중하나입니다. success: 프로그램실행이끝나작업이완료되었음을나타냅니다. 이것이프로그 램이 에러없이 끝났음을의미하는것은아닙니다. 예를들어프로그램이잘못된 결과값을출력하고끝나거나, segmentation fault 등의에러가발생하여끝난것일 수도있습니다. killed by user: 사용자가뒤에서설명할 thorq --kill 명령을사용해작업을 강제종료하였음을의미합니다. timeout: 프로그램실행중에 thorq --add 명령에서설정한 timeout 만큼의시간 이지나작업을강제종료하였음을의미합니다. not enough quota: 사용자의쿼터가모자라작업을실행시키지못했음을의미합 니다. not enough nodes: thorq --add 명령에서지정한노드수가현재서비스중인 노드수보다많아작업을실행시키지못했음을의미합니다. killed by system: 기타천둥시스템혹은 thor 프로그램에문제가있어작업이 종료되었음을나타냅니다. 이경우기존에작업이실행중이었더라도따로쿼터를 차감하지않습니다. 작업을다시실행해보시거나메일로자세한원인을문의해 주시기바랍니다. thorq --stat-all 명령을사용하면현재작업큐에서대기중이거나 (Enqueued) 계 산노드에할당되어실행중인 (Running) 모든작업목록을표시합니다. 이전에 thorq --add 명령으로추가한작업이이리스트에나타나지않는다면해당작업은이미완료된 것입니다. 다음은 thorq --stat-all 명령을사용한예입니다. [ user _ id@login0 ~]$ thorq --stat - all Job 229 ( thorq _ test ): Running Job 230 ( second _ test ): Running Job 234 ( task _ 234) : Enqueued Job 240 ( task _ 240) : Enqueued ( end of the list ) 19

4 작업삭제 thorq --kill 명령을사용하면작업큐에서대기중인작업을삭제하거나, 혹은계산 노드에서실행중이던작업을강제종료할수있습니다. 다음은 229 번작업을삭제하는 예입니다. 작업삭제에는최대 10 초정도의시간이소요될수있으니금방완료되지 않더라도잠시만기다려주십시오. [ user _ id@login0 ~]$ thorq -- kill 229 Job 229 is killed. thorq --kill-all 명령을사용하면작업큐에서대기중이거나계산노드에서실 행중인모든작업을강제종료할수있습니다. 작업삭제에는오랜시간이소요될수 있으니금방완료되지않더라도잠시만기다려주십시오. [ user _ id@login0 ~]$ thorq --kill - all Job 230 is killed. Job 234 is killed. Job 240 is killed. ( end of the list ) 5 쿼터확인 thorq --quota 명령을사용하면현재사용자의쿼터가얼마나남아있는지확인할수 있습니다. 단, 쿼터는작업실행이완료된후차감되므로현재계산노드에서실행중인 작업의쿼터사용량은반영이되어있지않습니다. [ user _ id@login0 ~]$ thorq -- quota Quota : 300000 6 참고 계산노드에서실행되는프로그램은 stdin( 표준입력 ) 을사용할수없습니다. 파일혹은프로그램인자를사용해데이터를입력받으시기바랍니다. 로그인노드와계산노드는 /home과 /scratch를공유하고있으므로여기에저장된파일은프로그램이읽고쓸수있습니다. 20

여러작업에동일한이름을부여한경우, 나중에실행된작업의.stdout,.stderr 파일이이전에실행된작업의결과를덮어쓸수있으니유의하십시오. 계산노드에서프로그램실행전에환경변수를설정해야한다면 ~/.bashrc 파 일에 export 문을추가하십시오. 예를들어프로그램이표 4.5 의라이브러리를사 용하는경우, ~/.bashrc 파일에 $LD LIBRARY PATH 환경변수를설정하는코드를 추가해두어야합니다. ~/.bashrc 파일에서아래의세줄은삭제하지마십시오. 이를삭제할시 thorq 로작업을추가하면 mpirun: command not found 에러가발생하고프로그램이 실행되지않습니다. if [ -f / etc / bashrc ]; then. / etc / bashrc fi MPI나 SnuCL로작성된프로그램을컴파일할때와실행시킬때동일한 MPI 버전이선택되어있어야합니다. 예를들어프로그램을컴파일할때 Open MPI 1.6.4 의 GCC 4.4.6 버전을선택해있었다면, 실행할때에도이버전을선택해두어야합니다. 21

제 6 장 thor 웹인터페이스 thor는웹으로사용자정보를확인할수있는인터페이스를제공합니다. 웹브라우저에서 http://147.46.219.87/ ( 서울대학교학내 ) 혹은 http://147.46.219.87:8080/ ( 학외 ) 로접속하면그림 6.1과같이로그인화면이나타납니다. 천둥아이디와패스워드를입력하면로그인할수있습니다. 그림 6.1: thor 웹인터페이스의로그인화면. 22

로그인에성공하면그림 6.2와같은화면이나타납니다. 현재사용자의잔여쿼터를확인할수있으며, 왼쪽의메뉴를클릭하여그림 6.3과같이패스워드를수정하거나그림 6.4와같이작업큐에삽입된작업, 실행중인작업, 완료된작업을확인할수있습니다. 끝으로, 좌측의 로그아웃 버튼을클릭하여웹인터페이스에서로그아웃할수있습니다. 그림 6.2: thor 웹인터페이스의메인화면. 23

그림 6.3: thor 웹인터페이스의패스워드수정화면. 24

그림 6.4: thor 웹인터페이스의작업확인화면. 25