[Cloud] 03. HTC(High Throughput Computing)

Date:     Updated:

카테고리:

태그:


01. HPC와 HTC


대규모로 여러 대의 컴퓨터를 클러스터링한 컴퓨팅 환경은 HPC와 HTC로 구분될 수 있는데, 두 컴퓨팅 환경은 풀어야 하는 문제의 특성에 맞춰 선택되어야 한다.


■ HPC(High Performance Computing)

  • HPC는 빠른 속도로 문제를 해결하는 데 중점을 두며, 이를 위해 동일한 CPU 타입을 사용하여 병목 현상을 최소화한다.

  • HPC 환경에서는 프로세서들이 동일한 파일시스템에 접근할 수 있도록 공유파일시스템을 사용하며, 네트워크 속도의 손실을 최소화하기 위해 인피니밴드 등의 특수한 네트워크 환경을 사용한다.

  • HPC 환경에서는 하나의 작업이 들어오고 이 작업에 필요한 프로세서가 준비될 때까지 대기하며, 하나의 작업을 여러 작업으로 분리해 처리한다.

  • 이때 MPI(Message Passing Interface) 방식을 사용하여 프로세스 간 통신을 통해 분리된 각각의 작업의 결과들을 취합한다.

  • 즉, 모든 작업이 분리될 수 있지만 상호 간에 의존성이 존재한다는 것이고, 이 의존성 때문에 가장 늦게 처리된 작업이 전체 속도에 영향을 미칠 수 있으므로, 동일한 스펙의 컴퓨팅 노드로 병렬 환경을 구축하는 것이 필요하다.


■ HTC(High Throughput Computing)

  • HTC는 작업들이 서로 독립적이며 병렬로 처리할 수 있는 환경을 중점적으로 다룬다. 이로 인해 동일한 컴퓨팅 스펙을 갖는 시스템으로 환경을 구축할 필요가 없으며, 이기종 시스템으로도 HTC 환경을 구성할 수 있다.

  • HTC는 분리된 작업들 사이에 의존성이 없기 때문에 가용 자원이 생길 때마다 이를 활용하여 자원을 최대로 활용하며, 작업 하나에 발생한 오류가 전체 작업에 영향을 주지 않아 실패한 작업만 재실행하면 된다.

  • 또한, 서로 의존성이 존재하지 않기 때문에 HPC 처럼 MPI와 같은 특수한 프로그래밍을 할 필요가 없다.

  • HPC가 빠른 계산을 중점을 둔다면, HTC는 동시에 처리할 수 있는 작업량이 더 중요하다. 즉, 성능이 좋지 않은 컴퓨터라도 작업을 처리할 수 있도록 자원이 사용된다면 전체적인 처리 결과를 빠르게 얻을 수 있으며, 성능이 다른 여러 대의 컴퓨터를 이용하는 것이 더 효과적일 수 있다.


■ HPC와 HTC 비교

dadasda


02. HTC 사용 예


미국의 ‘오픈 사이언스 그리드(OSG, Open Science Grid)’에서는 ‘천문우주 분야’, ‘분자생물학 분야’, ‘뇌 과학 분야’ 등의 예시를 소개하고 있으며 한 가지 예시를 통해 알아보자.


■ HTC를 활용 예시

뇌 과학 분야에서 치매에 대한 연구를 위해 치매 분석을 위해 환자 1명당 50개의 뇌 이미지를 찍고, 1개의 이미지당 1시간의 계산이 필요하며, 총 환자의 수는 1000명이라고 가정해보자. 우리에게 필요한 시간은 다음과 같다.


1,000명 환자 X 50개 이미지 = 50,000 태스크 X 1 시간 = 50,000 시간

한 개의 코어를 가진 데스크톱 컴퓨터, 20개의 코어를 가진 서버, 500코어를 가진 클러스터, 1000개의 코어를 가진 클러스터에 대해 시간을 비교하면 다음과 같다.

eweqewq

예시를 통해 확인할 수 있듯이 유휴한 컴퓨팅 자원을 네트워크를 통해 클러스터링을 한다면 상상하는 것 이상의 컴퓨팅 파워를 얻을 수 있다. HTC를 활용할 수 있는 조건은 각각의 작업이 ‘독립성’을 가져야 한다는 것을 꼭 명심하기 바란다.

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

댓글 남기기