Skip to main content
QUICK REVIEW

[논문 리뷰] Matrix Factorization at Scale: a Comparison of Scientific Data Analytics in Spark and C+MPI Using Three Case Studies

Alex Gittens, Aditya Devarakonda|arXiv (Cornell University)|2016. 07. 05.
Advanced Data Storage Technologies참고 문헌 42인용 수 16
한 줄 요약

이 논문은 과학 계산 분야에서 대규모 행렬 분해를 위해 Apache Spark와 C+MPI를 평가하며, 입자 물리학, 기후 모델링, 생영상영역에서 유래한 테라바이트 크기의 데이터셋을 바탕으로 PCA, NMF, CX를 구현한다. Spark는 최대 1600개 노드까지 강한 스케일링을 달성하지만, 스케줄링 오버헤드, 느린 작업자, 직렬화로 인해 2배에서 25배의 성능 격차를 보이며, HPC 워크로드에 있어 핵심적인 성능 저하 요인을 드러낸다.

ABSTRACT

We explore the trade-offs of performing linear algebra using Apache Spark, compared to traditional C and MPI implementations on HPC platforms. Spark is designed for data analytics on cluster computing platforms with access to local disks and is optimized for data-parallel tasks. We examine three widely-used and important matrix factorizations: NMF (for physical plausability), PCA (for its ubiquity) and CX (for data interpretability). We apply these methods to TB-sized problems in particle physics, climate modeling and bioimaging. The data matrices are tall-and-skinny which enable the algorithms to map conveniently into Spark's data-parallel model. We perform scaling experiments on up to 1600 Cray XC40 nodes, describe the sources of slowdowns, and provide tuning guidance to obtain high performance.

연구 동기 및 목표

  • 기존의 HPC 최적화된 C+MPI 코드와 비교하여 Apache Spark가 대규모 과학적 행렬 분해에 적용 가능한지 여부와 성능을 평가하는 것.
  • 실제 과학 워크로드에서 현대적인 데이터 분석 프레임워크인 Spark와 고성능 컴퓨팅(HPC) 스택 간의 성능 격차를 해결하는 것.
  • 대규모 선형 대수 워크로드에 적용했을 때 Spark의 주요 성능 저하 요인—예를 들어 스트래글러 효과, 작업 스케줄링, 직렬화—를 규명하는 것.
  • 과학적 데이터 분석을 위한 HPC 플랫폼에서 Spark의 성능을 향상시키기 위한 튜닝 가이드라인과 아키텍처 통찰을 제공하는 것.
  • 손으로 최적화된 HPC 코드와 유사한 성능을 유지하면서도 TB 크기의 과학적 데이터셋에 대해 Spark가 효과적으로 확장 가능한지 평가하는 것.

제안 방법

  • HPC 하드웨어에서 Spark와 C+MPI를 사용하여 세 가지 행렬 분해—PCA, NMF, CX—의 병렬 버전을 구현하였다.
  • 세 가지 과학 분야에서 유래한 테라바이트 크기의 데이터셋을 사용하였다: Daya Bay 중성미자 실험(1.6TB), CAM5 기후 시뮬레이션(16TB), 질량 분석 영상 기반 데이터(2.2TB).
  • 스파크의 내성 분산 데이터셋(RDD)과 배치 동기 처리(BSP) 모델을 활용하여 날씬한 긴 행렬에 대한 데이터 병렬 연산을 표현하였다.
  • Cray XC40 시스템에서 최대 1600개 노드를 대상으로 강한 스케일링 실험을 수행하여 종단 간 성능를 측정하고 스케일링 저하 요인을 규명하였다.
  • 스파크에서 작업 스케줄링, 스트래글러 효과, 결과 직렬화, 작업 역직렬화 오버헤드를 측정하고 분석하였다.
  • 스트래글러 효과를 완화하기 위해 스파크의 특성 기반 실행(speculation)을 사용하였지만, 원격 워커로부터 RDD 파artitions를 가져오는 데 높은 지연 시간이 발생하여 효과 없음을 확인하였다.

실험 결과

연구 질문

  • RQ1TB 크기의 과학적 데이터셋에서 Spark의 성능이 PCA, NMF, CX 등의 대규모 행렬 분해에 대해 C+MPI와 어떻게 비교되는가?
  • RQ21600개 노드로 확장할 경우 과학적 선형 대수 워크로드에서 Spark의 주요 성능 저하 요인은 무엇인가?
  • RQ3스트래글러 효과와 작업 스케줄링 오버헤드가 데이터 병렬 과학 계산에서 Spark의 확장성에 얼마나 큰 영향을 미치는가?
  • RQ4MPI 기반 런타임과 연계할 때 Spark가 고성능 선형 대수 라이브러리를 효과적으로 활용할 수 있는가? 그리고 데이터 전송 비용은 어떠한가?
  • RQ5I/O 성능이 HPC 시스템에서 대규모 데이터 분석 워크로드의 종단 간 실행 시간에 어떤 영향을 미치는가?

주요 결과

  • Spark는 TB 크기의 과학적 데이터셋에서 PCA, NMF, CX에 대해 최대 1600개 노드까지 성공적으로 확장하여 대규모 과학적 분석의 가능성을 입증하였다.
  • Spark와 C+MPI 간의 종단 간 성능 격차는 2배에서 25배로 나타났으며, I/O를 제외한 경우 격차는 10배에서 40배로 더욱 커졌다.
  • 스트래글러 효과가 오버헤드에 크게 기여하였으며, Spark의 BSP 모델에서의 동기화 장벽으로 인해 여러 차례의 PCA 반복 과정에서 정지 시간이 최대 O(100)초에 이르렀다.
  • 스케일이 증가함에 따라 작업 스케줄링, 결과 직렬화, 역직렬화 오버헤드가 런타임의 주요 요소로 떠올랐으며, 계산 비용을 초월하여 약 10배 이상의 오버헤드를 유발하였다.
  • 스파크의 특성 기반 실행 기능을 활성화했지만, 원격 워커로부터 RDD 파artitions를 가져오는 데 높은 지연 시간이 발생하여 성능 향상이 측정되지 않았다.
  • 실행 시간의 변동성은 최대 25%에 이르렀으며(중앙값 645초, 최소 489초, 최대 716초), 지연을 유발하는 일관된 단계는 없었으며, 이는 작업 실행 시간에 대한 체계적 불안정성을 시사한다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.