보고서 정보
주관연구기관 |
울산과학기술원 Ulsan National Institute of Science and Technology |
연구책임자 |
김성엽
|
참여연구자 |
황순욱
,
황인준
,
엄현상
,
이영민
,
김민수
,
이병철
,
박경수
|
보고서유형 | 연차보고서 |
발행국가 | 대한민국 |
언어 |
한국어
|
발행년월 | 2017-04 |
과제시작연도 |
2019 |
주관부처 |
미래창조과학부 Ministry of Science, ICT and Future Planning |
등록번호 |
TRKO202000029527 |
과제고유번호 |
1711042426 |
사업명 |
SW컴퓨팅산업원천기술개발 |
DB 구축일자 |
2020-10-10
|
키워드 |
빅데이터.고성능컴퓨팅.빅데이터 플랫폼.데이터 사이언스.하둡.Big Data.High Performance Computing.BigData Platform.Data Science.Hadoop.
|
초록
▼
□ 연구개발 목표
본 과제의 최종목표는 기존 빅데이터 에코시스템의 성능을 크게 뛰어넘는 초고성능 빅데이터 에코시스템을 개발하는 것이다. 이 빅데이터 에코시스템은 하둡과 스파크를 필두로 한 빅데이터 처리 프레임워크들의 성능을 고속화하고, 새로운 고성능 빅데이터 처리 프레임워크를 개발하며, 이러한 프레임워크들이 이기종 서버와 클러스터를 갖춘 이기종 데이터센터에서 Heterogeneity를 자가 인식(self-awareness)하고 적응(self-adaptation)하여, 최적의 성능을 발휘하게 하는 것을 목표로 한다.
□ 연구개발 목표
본 과제의 최종목표는 기존 빅데이터 에코시스템의 성능을 크게 뛰어넘는 초고성능 빅데이터 에코시스템을 개발하는 것이다. 이 빅데이터 에코시스템은 하둡과 스파크를 필두로 한 빅데이터 처리 프레임워크들의 성능을 고속화하고, 새로운 고성능 빅데이터 처리 프레임워크를 개발하며, 이러한 프레임워크들이 이기종 서버와 클러스터를 갖춘 이기종 데이터센터에서 Heterogeneity를 자가 인식(self-awareness)하고 적응(self-adaptation)하여, 최적의 성능을 발휘하게 하는 것을 목표로 한다.
□ 연구개발내용
[엔진 연구]
빅데이터 엔진 연구팀은 빅데이터 처리 엔진의 고성능화 연구를 담당한다. 2차 년도에는 1차년도 연구에 이어 새로운 Velox 빅데이터 플랫폼 개발 및 하둡 고속화 연구 개발을 다음과 같이 진행하였다.
(1) 하둡의 컨테이너 오버헤드를 줄이기 위해 Input Split을 합쳐 스케줄링을 함으로써 여러 맵 태스크를 하나의 태스크로 수행하는 Assorted Block Coalescing 기법을 개발하였다.
(2) 분산 해쉬 테이블에 기반한 빅데이터 처리 플랫폼인 Velox 플랫폼을 1차년도에 이어 개발하고 성능 향상 연구를 진행하였다. Velox는 슈퍼컴퓨팅 환경을 위해 개발된 비중앙집중식 C++ 프레임워크로 2차년도에는 대화형 작업을 지원하도록 개선하였으며, C++, Java, Python, Python Interactive Shell, 그리고 Linux Shell에서 사용 가능한 API들을 개발하였다. 또한, Google의 딥러닝 프레임워크인 텐서플로우를 탑재할 수 있도록 Python API를 개발하였다.
(3) SQL 고속 처리를 위해 기존의 Column 파티션, Row 파티션 기법과 함께,Value 메이저 파티션 기법을 개발하고, 데이터 셔플을 최소화하여 성능 개선을 하였다.
(4) 빅데이터의 중요한 응용 중 하나인 그래프 데이터 처리 성능 향상을 위해 분산 파일 시스템과 인메모리 컴퓨팅을 활용하는 그래프 처리 엔진을 1차년도에 이어 개발하고 성능을 개선하였다. 2차년도에는 사전 그래프 분할을 활용해 다양한 그래프 연산들을 분산 시스템에서 빠르게 수행하는 알고리즘들을 개발하였다.
[가속기 연구]
가속기 연구팀은 GPU를 이용한 빅데이터 처리 고속화 연구를 다음과 같이 수행하였다.
(1) 첫째, Spark에서 수행되는 연산 과정을 GPU로 오프로딩하여 가속화하고 데이터를 메모리에 캐싱함으로써 성능을 향상시켰다.
(2) 또한, 캐싱된 데이터를 MPI를 통해 GPU 끼리 통신하게 함으로써 데이터 셔플 과정에서 많은 성능을 향상시켰다.
(3) 그리고, 1차년도에 구현한 Java2PTX JIT 컴파일러와 2차년도에 구현한 CPU-GPU 공유 메모리를 결합하여 GPU 가속 자바 가상 기계 프로토타입을 개발하였다.
(4) 마지막으로, 1차년도에 구현한 하둡 인트라노드 스케줄러를 위해 2차년도에는 성능 예측기를 개발하고 있다.
[이기종 자원 관리 기술 연구]
자원 관리 기술 연구팀은 다중 빅데이터 워크로드 수행 시 자원을 효율적으로 관리하는 H2ARM 자원 관리 시스템 연구를 다음과 같이 수행하였다.
(1) 첫째, 이기종 컴퓨팅 환경에서 다중 빅데이터 응용을 동시에 실행하기 위해 이기종 클러스터에서 분산 병렬 응용들의 배치에 따른 성능 영향 및 자원사용 패턴을 분석하여 다양한 배치에 대한 성능 예측 모델을 수립하는 기법을 연구하였고, 성능 예측 모델을 활용한 응용 배치 알고리즘을 제안하였다.
(2) Java 기반인 하둡 에코시스템에서 JVM의 메모리 관리가 성능에 미치는 영향이 매우 크다. 본 연구에서는 빅데이터 워크로드가 런타임에 생성하는 메모리 객체의 특성과 주어진 heap의 크기를 설정하고, 자바 가상 머신의 garbage collection (GC) 동작 설정에 따른 GC 처리량을 예측하는 PMGC를 개발해 빅데이터 워크로드의 성능을 향상시켰다.
(3) 또한, 클러스터 전체 자원을 관리하는 Myriad 빅데이터 플랫폼 관리 소프트웨어를 이용하여 노드에서 다양한 작업들의 공유 자원으로 인한 성능 간섭과, 자원 분배 방식에 따라 데이터 지역성을 위반하는 문제를 해결하였다.
(4) 웹 검색 엔진과 같은 latency-critical (LC) 빅데이터 워크로드와 batchprocessing 빅데이터 워크로드를 함께 수행시키면서 공유 메모리 서브시스템 격리 기법을 사용하여 SLO를 보장하고 서버의 활용도를 향상시켰다.
[스토리지/네트워크 연구]
빅데이터 프레임워크를 위한 스토리지/네트워크 연구팀의 2차년도 주요 연구개발 내용은 다음과 같다.
(1) 1차년도에 개발한 비중앙 집중식 분산 파일 시스템 VeloxDFS를 확장하고 성능 개선하였으며, Hadoop MapReduce를 위한 API를 개발하여 HDFS 대신 사용할 수 있도록 API들을 추가하고 있다. HDFS의 큰 문제점으로 지적되고 있는 것 중 하나는 파일 정보를 관리하는 네임노드 병목 현상이다. 네임노드의 확장성을 높이고 Single Point of Failure 문제를 해결하기 위해, DHT를 적용하여 모든 노드가 파일의 분할 정보 및 메타데이터를 분할하여 관리하도록 하는 비중앙 집중식 분산 파일 시스템을 개발하고 성능 개선 연구를 진행하고 있다.
(2) 네트워크 직접 장착 저장장치, 소위 NDAS는 네트워크를 통해 연결되는 저장장치로 여러 서버에서 마운트하여 사용이 가능하다. 기존 분산시스템의 성능 병목은 서버간 I/O에 의한 네트워크 부하인데, 네트워크에 연결된 NDAS는 모든 서버에서 접근이 가능하므로, 각 서버의 저장 공간을 부분적으로 NDAS에 공유하여 서버간 I/O 부하를 줄일 수 있다. 본 연구에서는 NDAS를 활용하는 파일 시스템을 빅데이터 시스템에서 활용하는 기법들을 연구하였다.
[빅데이터 응용]
(1) 거대과학: 빅데이터 처리 환경에 기반하여 유전체 분석 시간을 획기적으로 줄이고자 하여, 염기 서열 데이터 정렬 알고리즘을 Lustre 기반의 MapReduce를 활용하여 성능을 개선하였다. 또한, 거대과학 응용 가속을 위한 Hadoop-on-Lustre 연동 시스템의 성능 최적화를 위해 계층적 I/O 시스템인 Burst Buffer Prototype 구축 기술을 개발하였다. 계층적 I/O 기술은 계산 노드에 위치한 고속의 SSD를 활용하여 갑작스런 쓰기 요청에서의 성능저하를 방지한다. 추가로, 실제 워크로드를 활용하여 이러한 SSD의 Bursty I/O 발생시의 성능 특성을 분석하였다.
(2) 기계학습: 기계학습은 처리 속도 이상으로 학습 정확도를 높이는 것이 중요하다. 본 연구에서는 클러스터 환경에서 서로 다른 학습 알고리즘을 사용하는 앙상블 학습법을 연구하고 feature sharing, stochastic labeling 등 새로운 네트워크 regularization 기법을 제안 및 적용하여 추론 성능을 극대화하였다.
(3) 실시간으로 생성되는 대용량 동영상 데이터를 분석, 처리하여 객체를 인식하고, 결과 데이터를 이용하기 위한 시스템을 위해, 본 연구에서는 아파치 카프카를 이용하여 영상 처리 노드의 스케줄링과 동영상 데이터 전송에 손실이 발생하지 않도록 만들었고, Hbase를 이용하여 추출된 데이터의 인덱싱을 통해 빠르게 검색할 수 있도록 하였다.
[하둡 기반 대규모 작업 배치 처리 (MTC) 엔진 개발 (MOHA)]
국가 거대과학 분야의 MTC 응용을 시범 적용하기 위한 준비 작업과 신약 개발 분야의 실제 MTC 응용의 일부 태스크들을 실행하여 기존의 MOHA 아키텍처 개선 및 문제점 분석을 수행하였다.
[시스템 운영 관리 기술 개발(Chameleon)]
HPC 분산 파일 시스템인 LustreFS 를 Ambari 의 구성 서비스로 추가하여 LustreFS 상의 데이터를 바로 하둡 클러스터에서 실행하였다. 또, GPGPU를 장착한 하둡 클러스의 운영 관리를 위해 자원 사용현황을 모니터링 할 수 있는 자체 개발 웹인터페이스인 Chameleon 웹 포털을 개발하였다.
□ 연구개발성과
2차년도의 정량적 목표인 논문 40편, 특허 16건을 초과달성하였으며, 본 과제에서 새로 개발 중인 Velox 프레임워크를 오픈소스화 하였다. 하둡의 여러 구성 요소들을 개선하여 성능을 향상시키는 연구들은 Hadoop 3.7 버전을 기반으로 통일하여 3,4 차년도에 하나의 프레임워크로 통합할 수 있는 기반을 마련하였다. 과제 제안서에서 목표로 삼은 성능 목표들은 90% 이상 달성하였다.
SQL 성능 목표는 제안서 상의 목표를 달성하지는 못하였으나, 1차년도의 성능향상 폭이었던 4배 빠른 성능을 뛰어 넘어 10배까지 성능을 향상시키는 데이터 분할 기법을 개발하였다. 기타 구체적인 연구 성과들은 다음과 같다.
[엔진 연구]
1차년도에 개발하였던 EclipseMR 프로토타입을 확장한 Velox는 반복 작업 및 대화형 작업도 처리가 가능하게 되었다. 프로토타입에 구현되었던 분산 공유메모리 기능은 Velox에 완성되지 않아 현재 성능은 Hadoop과 비슷한 편이다.
프로토타입에서 분산 공유 메모리를 사용하는 경우 반복 맵리듀스 작업인 K-Means 응용 등에서 하둡보다 최대 70배 빠른 성능을 얻을 수 있었기에,Velox 역시 공유 메모리 구현이 완성되면 비슷한 70배 이상의 성능을 얻을 수 있을 것으로 추정하고 있다. 또한 대화형 작업을 지원하기 위해 Interactive Python Interface를 구현하여 2차년도 목표를 달성하였다. 또 다른 주요 목표인 SQL 처리 성능 향상을 위해 엔진 연구팀은 Hive의 성능을 개선하였다. 데이터베이스 테이블을 Hash 값에 따라 저장함으로써, 셔플 데이터 양을 대폭줄여 TPC-DS 벤치마크 기준 Hive 대비 약 10배 빠른 성능 향상을 얻는데 성공하였다. 이는 2차년도의 정량적 목표에는 미치지 못한 성능이나, 1차년도의 4배 성능에 비해 크게 개선된 결과이고, 3,4 차년도에 다른 연구 결과 들과 통합하여 목표 성능을 달성하고자 한다. 마지막으로, 그래프 처리 엔진은 GraphX 등의 기존 시스템 대비 최대 5.4배 빠르고 32배 큰 717억개 이상의 간선을 가진 그래프 데이터를 처리 할 수 있도록, 간선 중심 분할 기법과 삼각형 분할 기법을 개발하여 목표를 달성하였다.
[가속기 연구]
목표로 하였던 정량적 목표들을 가속기가 없는 클러스터 환경에서도 만족하였으나, 가속기를 사용할 경우 그 성능 향상 폭은 더욱 커진다. 우선, GPU 가속화 Spark와 GPU 메모리 캐싱 및 JVM 데이터 캐싱은 반복적인 계산 중심의 작업에서 Spark대비 50배, 특히 GPU로 가속한 Spark보다도 10배의 성능 향상을 보였으며 Hadoop과 비교시는 100배의 성능 향상을 달성한 것으로 추정할수 있다. 또한, 본 연구팀이 개발한 GPU 가속 자바 가상 머신 소프트웨어를 사용하면, 행렬 곱셈을 CPU 대비 300배 빠르게 GPU를 사용하여 수행할 수 있다. 또한, GPU와 CPU를 함께 사용하는 코프로세싱 기법 연구에서는, KNN 응용에 대해 CPU와 GPU를 동시에 사용하여 단일 노드에서 싱글코어 대비 83배 이상 (2차년도 목표 60배) 성능을 향상시켰다. 단일 노드에서 Spark-GPU를 이용하여 CPU만 이용했을 경우에는 대비 행렬곱셈 예제에 대해 10배 성능을 향상시켰고, word2vec의 경우 6배 성능을 향상시켰다.
[이기종 자원 관리 시스템]
메모리 객체의 크기와 lifetime을 설정할 수 있는 microbenchmark에 대해 PMGC로 예측한 GC 처리량과 실측 GC 처리량은 5% 미만의 오차를 보였다.
PMGC를 BigDataBench의 WordCount 워크로드에 적용하였을 때, Spark와 동일한 메모리 용량을 사용하는 환경에서 GC 처리량을 20.9% 향상시켰고, end-to-end 실행시간은 33.6% 단축시켰으며 GC 처리량 오차는 12.5%로 나왔다. 또한, 성능 isolation을 보장하기 위한 빅데이터 워크로드의 메모리 서브시스템 자원 할당 크기 예측 모델을 개발하고 최대 98% 예측 정확성을 달성했다. 메모리 서브시스템 격리 분할 기법을 통해 100%에 해당하는 성능 isolation을 보장한다. 또한 기존 대비 410%에 해당하는 서버 활용도 향상을 달성했다.
[하둡 기반 대규모 작업 배치 처리 엔진 개발 (MOHA)]
고성능 태스크 배포율 향상 PoC를 수행하면서 3차년도 성능 목표치인 초당 태스크 배포율 15,000건이상 달성 가능성을 확보하였다.
[거대과학 응용기술(NextGen)]
기존 Hadoop 기반 염기 서열 정렬 알고리즘 대비 300% 성능을 향상시켰고 기존 Hadoop on Lustre 기반 염기 서열 정렬 알고리즘 대비 180% 성능을 향상시켰다. Spark Stream 기반 중복 서열 검출 알고리즘 통한 분석 연계 기술, 계산노드의 분산 NVMe SSD와 노드 간 RDMA연결을 활용하는 Burst Buffer 시스템, NERSC의 Cori 슈퍼컴퓨터에서 사용된 실제 워크로드의 I/O Trace를 다시 수행하기 위한 Workload Emulator를 개발하고, 각각의 성능을 분석하였다.
[시스템 운영 관리 기술 개발(Chameleon)]
Ambari에 LustreFS 서비스 통합에 대한 기능을 1차년도 대비 완성도 있게 향상하였으며, GPGPU가 장착된 노드의 자원정보를 Chameleon 웹에 표현하여 모니터링 할 수 있게 하였다.
□ 활용계획 및 기대효과
슈퍼컴퓨팅 분야에서 주로 활용되었던 고성능 컴퓨팅 기술이 빅데이터 분야에도 점차적으로 적용되고 있다. IDC는 2015년도에 빅데이터 처리 용 고성능 컴퓨팅 서버 시장의 매출액이 약 10억 불에 이를 것으로 예측하였고, 최근 발표결과에 의하면 실제로 이 예측 치에 도달하고 있다고 보고되고 있다. 본 연구를 통해 개발될 고성능 컴퓨팅 기반 빅데이터 처리 가속 기술은 국내 기술로 고성능 빅데이터 에코시스템의 독자적인 브랜드를 만들어 성장하고 있는 고속빅데이터 플랫폼 시장에 진입하고, 국내 IT 소프트웨어 산업 성장에 기여한다.
(출처 : 국문 요약문 11p)
목차 Contents
- 표지 ... 1
- 제 출 문 ... 2
- 목차 ... 10
- 국문요약문 ... 11
- 1. 연구개발 목표 ... 16
- 가. 최종 목표 ... 16
- 나. 당해 (연도·단계) 연구개발 목표 및 결과 ... 16
- 2. 연구 범위 및 연구 수행 방법 ... 19
- 3. 연구개발 목표의 달성도 및 자체 평가 ... 23
- 가. 연구개발성과 및 평가 방법 ... 23
- 나. 당해 (연도·단계) 정량적 연구성과 목표 및 달성도 ... 26
- 다. 당해 (연도·단계) 질적 성과 목표 및 달성도 ... 27
- 4. 연구개발성과 ... 28
- 가. 지식재산권(특허, 실용신안, 의장, 디자인, 상표, 규격, 신품종, 프로그램) ... 28
- 나. 국내 및 국외 논문 게재 ... 29
- 다. 국내 및 국제학술회의 발표 ... 32
- 라. 표준화 ... 34
- 마. 기술 거래(이전) 등 ... 34
- 바. 사업화 투자 실적 ... 34
- 사. 사업화 현황 ... 34
- 아. 저작권(소프트웨어, 서적 등) ... 34
- 자. 생명자원(생물자원, 생명정보)/화합물 ... 34
- 차. 전문 연구 인력 양성 ... 35
- 카. 산업 기술 인력 양성 ... 35
- 타. 기술요약정보 ... 35
- 하. 보고서 원문 ... 35
- 5. 구매 금액이 3천만원 이상인 연구시설·장비 구축 현황 ... 35
- 6. 연구개발비 집행 실적 ... 36
- 7. 연구 수행에 따른 문제점 및 개선 방향 ... 42
- 8. 중요 연구 변경 사항 ... 42
- 9. 기타 건의 사항 ... 42
- 붙임1. 자체 보안관리 진단표 ... 43
- 붙임2. 연구실 안전조치 이행표 ... 44
- 붙임3. 2차년도 성능 향상 측정 상세 실험 결과 ... 45
- 붙임4. 2차년도 연구개발 상세 내용 ... 53
- 끝페이지 ... 143
※ AI-Helper는 부적절한 답변을 할 수 있습니다.