The development of Supercomputing System for Genome Analysis (안씀)

유전체 분석용 슈퍼컴퓨팅 기술 개발
The development of Supercomputing System for Genome Analysis

  • 주관 연구 기관 : 한국전자통신연구원(ETRI)
  • 협동 연구 기관 : 한국과학기술정보연구원(KISTI), 한국과학기술원(KAIST), 건국대, 인하대
  • 협동 연구 책임자 : 최동훈 연구원, 윤찬현 교수, 진현욱 교수, 심정섭 교수
  • 연구 의뢰 기관 : 지식경제부

1. 연구 목적
– 분산 환경에서 워크플로우 매니지먼트 시스템 (Workflow Management System, 이하 WMS)은 게놈 분석과 같은 대용량의 데이터 처리 혹은 복잡한 문제를 해결하는 데 많이 쓰이고 있다. 이러한 과학적 응용이 복잡해짐에 따라서 워크플로우 작업들을 수행하는 자원들의 관리 기술의 개발이 현재 이슈가 되고 있다. 특히, 클라우드 컴퓨팅이 대두되고 이를 이용하면 대용량의 바이오 워크플로우 어플리케이션을 분석하는 비용을 크게 낮출 수 있게 되면서 클라우드 환경에서의 워크플로우 관리 시스템 개발은 중요한 이슈가 되었다.
– 본 과제의 목표는 다중 클라우드 환경에서 대용량 생명 정보 데이터 처리를 위한 분산/협업 워크플로우 관리 및 생명정보 실행 시스템 연구 및 개발
1

2. 연구 내용
– SLA보장과 자원 이용 비용 최소화를 위한 클라우드 자원 브로커 기술 및 다중 클라우드 연동 인터페이스 기술 연구
– 다수의 워크플로우 형태를 띈 유전체 작업 파이프라인을 다중 클라우드 환경에서 최적으로 병렬처리하기 위한 기법
– 데드라인, 예산, 신뢰성 등을 고려한 멀티 오브젝티브 기반 생명 워크플로우 스케줄링 기법
– 단위 작업 고장 관리, 제어 및 이전(Migration) 기법 연구
– 사용자 SLA를 보장하기 위한 Task 분할(division) 및 복제(replication) 기법
– 워크플로우 관리 시스템의 스케줄링 성능 향상을 위한 가상 머신 배치 기법 연구
– 다중 클라우드간 생명 정보 응용 협업 통합 실행 환경 구축

2.1. 생명 워크플로우들을 관리하기 위한 워크플로우 관리 시스템 구조 연구 및 프로토타입 구현
– 워크플로우 관리 시스템은 워크플로우 구조 등을 확립하고 상세 등을 결정하는 워크플로우 설계, 데이터 및 정보의 형태에 따른 정보 검색, 워크플로우 각 작업을 특정 자원에 할당하는 워크플로우 스케줄링, 오류 및 실패에 대응할 수 있는 결함 감내성 관리, 중간 데이터의 데이터 이동을 관리하는 중간 데이터 이동 관리 등 다섯 가지 분류 체계로 구성된다. 특히 자원의 성능대비 실행시간을 최소화 시키기 위해서는 워크플로우 스케줄링 기법은 필수적이다. 대다수의 워크플로우 동작 기술들은 배치 프로세싱 구조를 기반으로 하기 때문이다. 또한, 대부분의 워크플로우 스케줄링 기법에 대한 연구는 단일 워크플로우를 대상으로 하고 있으나, 워크플로우 관리 시스템은 클라우드와 연동해 워크플로우 요청들을 스케줄링해야 하기 때문에 여러 워크플로우 실행 요청을 동시에 수용할 필요가 있으며 따라서 클라우드 환경에서 다중 워크플로우들을 동적으로 스케줄링하는 이슈에 대한 연구가 필요하다. 워크플로우 분산 처리 브로커는 사용자가 보낸 워크플로우 처리 요청을 클라우드 환경에서 적절한 가상 머신을 할당하여 처리해주는 기능을 한다. 특히 다중 클라우드 환경에서 다수의 워크플로우 처리 요청을 스케줄링하기 위한 기술이 필요하다.
2

– 따라서 제안하는 워크플로우 스케줄링 기법은 다중의 워크플로우를 한번에 관리하고 처리하기 위해 임계 경로(critical path)를 구하는 과정 속에서 워크플로우 구조를 여러 task들의 조각(fragment)으로 나누는 방법을 사용한다. 워크플로우를 임계 경로를 기반으로 fragmentation하면 워크플로우 스케줄링 문제는 divide-and-conquer방식으로 잘게 나눌 수 있으며, 각 fragment들을 주어진 시간 정보에 맞춰 가상 머신 위에 올림으로써 전체 워크플로우를 스케줄링하게 된다. 이 때, 최소한의 비용을 사용하기 위해 클라우드 환경을 고려하여 시간 단위로 작업을 묶어 스케줄링한다. 따라서 다중 워크플로우 스케줄링 문제가 갖는 높은 복잡도를 fragmentation을 통해 낮추고, 각각의 fragment에 대해 휴리스틱을 사용함으로써 최적에 가까운 스케줄링 결과를 얻게 되었다.
3

– 또한 제안한 기법을 실험하기 위해 사용자가 워크플로우 모듈과 파이프라인을 관리하고, 구성하는 워크플로우 디자이너의 프로토타입을 구현하였으며, 스케줄링 알고리즘들을 관리하고 워크플로우를 실제로 실행시키는 스케쥴러를 구현하였다. 사용자가 워크플로우의 실행 과정을 한 눈에 파악할 수 있는 모니터링 툴 또한 구현해 워크플로우 관리 시스템의 프로토타입을 구현하였다.

2.2. 이종 클라우드 성능 모니터링 및 프로파일링 기술 연구
– 클라우드 환경에서 제공하는 VM 타입이 제한되어 있기 때문에, 존재하는 타입 중 가장 좋은 VM 타입만 사용하더라도 사용자가 요구한 데드라인을 지키지 못할 수 있다. 또한, 생명 워크플로우는 메타데이터의 용량이 큰 경우가 많아 분산 처리를 위해 VM들끼리 메타데이타를 옮길 때 걸리는 시간이 데드라인을 지키는 데 위협이 될 수 있다. 이를 해결하기 위해 우리는 생명 워크플로우 작업에는 입력 데이터를 분할해 각각을 수행한 후 그 결과를 합치면 전체 데이터를 수행한 것과 같은 결과가 나오는 분할 가능한 작업(Divisible Task)이 존재한다는 점에 착안, 워크플로우의 분할 가능한 작업을 여러 부분 작업(Sub-tasks)으로 나누어 각각을 다른 VM 위에서 동작시킴으로써 위에 언급한 문제점들을 극복할 수 있게 되었다.
4


3. 연구 결과
– 작업 분할을 고려한 프로파일링 기법을 통해 실현 가능해진 SLA의 범위가 약 18% 증가하였다.
– 다중 워크플로우 동적 스케줄링 알고리즘을 통해 세계 수준 알고리즘 대비 약 16% 비용 절감 및 약 13% 가상 자원 효율성이 증대하였다.
– 클라우드 내부까지도 다루어 가상 머신을 배치하는 영역을 다룰 수 있는 워크플로우 관리 시스템을 개발하였다.