[Cloud] 04. HTCondor이란

Date:     Updated:

카테고리:

태그:


01. HTCondor


HTCondor는 HTC와 Condor의 합성어로, HTC 소프트웨어 프레임워크로 ‘계산 집약적인 작업’을 병렬처리 하기 위한 시스템이다. HTCondor는 오픈소스 프로젝트로 진행 중에 있으며, 아파치 라이센스 2.0으로 배포되고 있다.


02. HTCondor 동작 방식 및 용어



■ HTCondor 동작 방식

222

  1. HTCondor에서는 작업(job) 또는 테스크(task)를 HTCondor 큐에 제출해야 하는데, 이를 위해서는 작업을 제출할 수 있는 시스템에 접속해야 한다. 작업 제출 시스템을 ‘서브밋 서버(Submit server)’라고 한다.

  2. 작업이 제출되면 작업을 처리할 컴퓨팅 노드와 해당 작업 간의 매칭을 해주는 중개자가 필요한데, HTCondor에서는 ‘Central Manager’가 그역할을 수행한다.

  3. 작업이 HTCondor 큐에 제출되면 HTCondor는 자신이 관리하는 클러스터의 ‘워커 노드(worker node)’를 지정하여 해당 작업을 처리할 수 있도록 한다.

  4. HTCondor 작업이 제출(submission)되고 실행된다.


■ HTCondor 용어

▶ 작업 또는 태스크

HTCondor 큐에 제출될 수 있는 독립된 컴퓨팅 작업 단위를 말하며, 큐에 제출된 작업은 크게 3가지로 구성된다.

종류 설명
실행 파일 컴퓨팅 노드에 할당되어 실제 실행 가능한 프로그램이나 스크립트를 말한다.
인풋(input) 실행 파일이 컴퓨팅 노드에 실행될 때 필요한 인자(argument)나 파일과 같은 정보를 말한다.
아웃풋(output) 실행 파일이 컴퓨팅 노드에서 실행되고 난 후 결과와 실행 중 발생한 정보를 말한다.


▶ 머신(machine)

컴퓨팅 노드라고 불리는 실제 컴퓨터를 의미한다. 하나의 작업이 ‘서브밋 노드’에서 컴퓨팅 노드(머신)로 할당되면, 컴퓨터 노드의 CPU, 메모리, 디스크와 같은 자원을 이용하여 처리하게 된다.


▶ 슬롯(slot)

머신에서 작업을 처리할 하나의 단위. (만약, 36개의 멀티코어를 갖는 컴퓨팅 노드라면 하나의 코어가 하나의 작업을 처리한다고 하며, 이 컴퓨팅 노드는 총 36개의 슬롯을 갖게 된다.)


03. HTCondor 실행 과정 예제



■ HTCondor 작업 준비

프로그램 간 유사도를 측정하기 위해 복사 여부를 검사하는 프로그램인 copy_check는 제출한 프로그램 파일 2개를 입력으로 받아 두 파일의 유사도를 측정해서 결과값을 보내주는 프로그램이다. 동작 과정은 다음과 같다.

2222


■ 작업명세서 파일 준비

# 1) 실행파일 이름, 인자를 지정
# arguments에는 copy_check에 필요한 입력 값들을 공백으로 구분하여 나열한다.
executable = copy_check
arguments = program1.java program2.java similarity.out

# 2) 컴퓨팅 노드로 실행 파일을 보낼 때 같이 보내야 할 파일들 지정
# 주의할 점 : 파일들은 콤마(,)로 구분한다.
transfer_input_file = program1.java, program2.java

# 3) 작업 진행 과정을 로그로 기록
log = job.log
output = job.out
error = job.err

# 4) 실행 파일을 실행하는 데 필요한 최소 cpu, disk, memory 지정
request_cpus = 1
request_disk = 20MB
request_memory = 100MB

# 5) 작업의 개수를 명시
queue 1


■ 작업 제출과 모니터링

# 1) condor_submit 명령어로 작업을 제출
# cluster 1의 의미는 제출한 작업의 번호를 의미하는 것으로, 작업이 제출될 때마다 번호는 하나씩 증가한다.

$ condor_submit job.jds
Submitting job(s).
1 job(s) submitted to cluster 1.
# 2) condor_q 명령을 통해 큐 상태 확인
# 가용한 컴퓨팅 노드가 할당되면 상태는 IDLE에서 RUN 상태로 변경되고, 실행이 완료되면 DONE 상태에 완료된 작업의 수가 표시된다.

$ condor_q

-- Schedd: master.cloud.org : <192.168.56.101:9618?... @ 01/22/22 15:08:11
OWNER    BATCH_NAME     SUBMITTED     DONE    RUN    IDLE   TOTAL   JOB_IDS
cloud    ID: 1          1/22 15:08       -      -       1       1   1.0


# -nobatch 옵션을 사용하면 배치작업이 아닌 배치 내의 각각의 작업에 대한 상태를 확인할 수 있다.

$ condor_q -nobatch

-- Schedd: master.cloud.org : <192.168.56.101:9618?... @ 01/22/22 18:31:11
  ID       OWNER         SUBMITTED       RUN_TIME   ST  PRI  SIZE   CMD
    6.0    cloud         1/22 18:31     0+00:00:13   R   0     0.0   copy_check program
    6.1    cloud         1/22 18:31     0+00:00:00   I   0     0.0   copy_check program

# 6.0이 의미하는 것은 배치작업이 6번째로 HTCondor 클러스터에 서브미션되었고, 배치 작업에는 2개의 작업이 있음을 보여준다.

# 6.0은 컴퓨팅 노드를 하당받아 실행 중에 있으며 6.1은 컴퓨팅 노드가 가용될 때까지 대기상태임을 알려주고 있다.
# 3) job.jds가 제출되고 난 후 실행에 대한 정보

$ tree 
.
├─ copy_check
├─ job.err
├─ job.jds
├─ job.log
├─ job.out
├─ program1.java
├─ program2.java
└─ similarity.out

0 directories, 8 files


$  cat job. log
000 (004.000.000) 01/22 15:08:09 Job submitted from host:
<192.168.56. 101:9618?addrs=192.168.56.101-9618&noUDP&sock=12078_14f5_3>
...
001 (004.000.000) 01/22 15:08: 16 Job executing on host:
<192.168.56.103:9618?addrs=192.168.56.103-9618&noUDP&sock=11608_b372_3>
...


005 (004.000.000) 01/22 15:08:36 Job terminated.
    (1) Normal_ termination (return value 0)
        Usr 0 00:00:00, Sys 0 00:00:00 - Run Remote Usage
        Usr 0 00:00:00, Sys 0 00:00:00 - Run Local Usage
        Usr 0 00:00:00, Sys 0 00:00:00 - Total Remote Usage
        Usr 0 00:00:00, Sys 0 00:00:00 - Total Local Usage
    58 - Run Bytes Sent By Job
    60 - Run Bytes Received By Job
    58 - Total Bytes Sent By Job
    60 - Total Bytes Received By Job
    Partitionable Resources :   Usage  Request  Allocated
        Cpus                :       0        1          1
        Disk (KB)           :      14    20480   16405136
        Memory (MB)         :       1      100        990

...

CLOUD 카테고리 내 다른 글 보러가기

댓글 남기기