분산처리시스템소개 HTCondor 소개 HTCondor 설치및설정 Simple Example
분산처리시스템소개
개념 - 여러대의컴퓨터를통신회선으로연결하여하나의작업을처리하는방식 구성이점 - 자원공유 - 연산속도향상 - 신뢰성향상
기초연구실험분야 사회기반시설, 안전분석분야 고부가가치데이터분석분야 의료, 생명데이터분석분야
HTCondor 소개
개념 특징 - 컴퓨팅을필요로하는작업들을분산시켜병렬처리하기위한소프트웨어프레임워크 - Wisconsin-Madison 대학의 HTCondor 팀에의하여개발되었고현재 Apache 라이선스 2.0 하에오픈소스형태로배포 - 1988 년에처음으로제안되었으며, 지난 28 년간지속적으로기능추가및버그수정과정을수행 - 호환성 : C 프로그래밍된오픈소스로, 다른프로그램에비하여높은호환성 - 성능 : Job ClassAd 에해당작업실행에필요한자원량을명시하여최대한작업들을균등분배 - 다양한기능 : flocking, checkpoint
동작과정 - 작업 (job) 을 submit 노드에제출 - HTCondor 가모든컴퓨팅및작업 (job) 을고려하여적절하게스케줄링
ClassAD
ClassAD (Classified Advertisements) - Condor 에서사용하는유연하고표현성높은언어 ( 자원요청, 자원제공등 ) - Job ClassAD, Machine ClassAD 정보를표현
Matchmaking - matchmaker 는 job ClassAds 와 machine ClassAd 를 match 시킴
Check Point
Flucking - HTCondor 의장점중하나 - 클러스터간작업연동기능 - ex> A.condor 라는 HTCondor pool 과 B.condor 라는 HTCondor pool 이존재할경우 A 에작업을제출했더라도 B 에자원이남아있을경우 B 로작업이전달되어작업을실행
Condor Daemon Layout
condor_master - 기본적인 Daemon - 모든 Condor Daemon 의시작 - 문제가있거나 daemon 의종료가있을경우, 데몬을재시작하고, 관리자에게 email 을전송
condor_startd - Job 의시작, 중지, 재시작 - 실제작업수행 condor_schedd - User command 를수행 ex>condor_submit, condor_rm, condor_q 등 - 큐에있는 job 을관리
condor_collector - 모든다른 condor daemon 으로부터정보수집 - 주기적으로 ClassAD 를 collector 에게전송 - Services queries for information: Queries from other Condor daemons Queries from users (condor_status)
condor_negotiator - condor에서 matchmaking 을수행 - collector로부터사용가능한상태의머신정보를수신 - 복수의 job에대한적절한분배
/etc/condor/condor_config 일반적인설정 - /etc/condor/config.d/cluster.conf HTCondor 환경을구성하기위한기본적인설정 ex> Master Name, Domain Name 등 데몬설정 - /etc/condor/config.d/local.conf 환경구성에따른노드별데몬설정 ex> MASTER, COLLECTOR, NEGOTIATOR, SCHEDD
일반적인설정 (cluster.conf)
데몬설정 (local.conf) - ex1> DAEMON_LIST = MASTER, COLLECTOR, NEGOTIATOR - ex2> DAEMON_LIST = MASTER, SCHEDD - ex3> DAEMON_LIST = MASTER, STARTD
HTCondor 설치및설정
노드정보
설치환경확인 HTCondor 설치 HTCondor 설정 기타설정 - 방화벽, SELINUX 서비스시작 계정생성 테스트
버전확인 - #cat /etc/redhat-release 설치준비 - wget http://research.cs.wisc.edu/htcondor/yum/repo.d/ htcondor-stable-rhel7.repo
설치 - #sudo yum install condor.x86_64
일반적인설정 - /etc/condor/config.d/cluster.conf HTCondor 환경을구성하기위한기본적인설정 ex> Master Name, Domain Name 등 데몬설정 - /etc/condor/config.d/local.conf 환경구성에따른노드별데몬설정 ex> MASTER, COLLECTOR, NEGOTIATOR, SCHEDD
#sudo vim /etc/condor/config.d/cluster.conf
#sudo vim /etc/condor/config.d/local.conf - CE - WN - UI
방화벽설정 - #sudo firewall-cmd --permanent add-port=9000-9999/tcp - #sudo firewall-cmd --permanent add-port=9000-9999/udp 서비스시작 - Head Node & Submit node & Worker node #sudo systemctl start condor.service 계정생성 - Head Node & Submit node & Worker node adduser ###### passwd ######
#condor_status #condor_q
Simple Example
Execution File Descriptions File
Descriptions File - Universe 실행파일을수행할환경지정 standard : 리모트에서수행중인 job 의상태를호스트에저장할수있는환경으로 checking-point 와 remote system call 가능. standard 환경에서실행되는파일은반드시 condor_compile 과링크되어야함 vanilla: condor_compile 로링크될수없는경우로쉘스크립트가대표적인예 ( 일반적인경우사용 ) grid: 그리드 Job 을실행할때사용 java: Java 프로그램을실행하는환경
Descriptions File - Universe (con t) local: 경량의 Job 을바로수행해보기위한사용환경으로리모트시스템과매치매이킹 (Match Making) 을하지않고호스트에서바로수행 scheduler: local 과유사하나 condor_stardd 데몬이 Job 을핸들링하지않는차이점이존재 parallel: MPI Job 을수행하기위한환경 vm: VMWare 나 Xen 과같은가상머신을수행하기위한환경 - Output 실행결과저장할곳지정
Descriptions File - Log 로그저장할곳을지정 - Queues Job 을 Queue 에넣음. 몇번수행할지지정. 지정하지않으면한개의 Job 수행
현재 a 시간을출력하고, 5초간슬립상태였다가다시현재의시간출력 - #cat out.txt - 환경구성
ㅁ 현재시간을출력하고, 5 초간슬립상태였다가다시현재의시간출력 - #mkdir /home/xxx/test1 - #vim /home/xxx/test1/date.sh - #vim /home/xxx/test1/date.jds
현재시간을출력하고, 5 초간슬립상태였다가다시현재의시간출력 - #cd /home/xxx/test1 - #condor_submit date.jds - #condor_q
현재시간을출력하고, 5 초간슬립상태였다가다시현재의시간출력 - ls - #cat out.txt
Help! I m buried in Email! - jds 파일
Removing Processes - 하나의프로세스삭제 condor_rm 9.47 - 하나의클러스터삭제 condor_rm 9 - 모든 job 삭제 condor_rm -a
who used condor? - condor_q -global - condor_status -submitters
Are the Requirements Reasonable? - condor_q -analyze
현재러닝중인 machine 또는 slot 확인 - condor_status -run 사용가능한 machine 또는 slot 확인 - condor_status -available
상태리스트업 - condor_status -master - condor_status -schedd
submit 정보확인 - condor_q -submitter XXX - condor_q -analyze
[1] HTCondor 소개및 HTC@PLSI 구축사례, KISTI 박주원 [2] https://twiki.grid.iu.edu/bin/view/documentation/release3/ InstallCondor [3] Condor by Example, Douglas Than [4] Installation Guide for CMS Tier 3 Farm, KISTI