실시간 데이터 파이프라인을 위한 Spark MPI 통합 플랫폼
초록
본 논문은 대용량·고속·다양한 실험 데이터 처리를 위해 Spark의 RDD 기반 데이터 흐름과 MPI의 고성능 병렬 연산을 결합한 Spark‑MPI 플랫폼을 제안한다. 프로세스 관리 인터페이스(PMI)를 활용해 Spark 작업 내에서 MPI 애플리케이션을 실행함으로써, 기존 데이터 관리·분석 시스템이 제공하지 못하던 저지연 실시간 재구성 파이프라인을 구현한다. 온라인 Ptychography와 Tomography 재구성 사례를 통해 시스템 구조, 성능 향상, 확장성을 검증한다.
상세 분석
Spark‑MPI 플랫폼은 두 가지 전통적인 컴퓨팅 패러다임을 융합한다. 첫 번째는 Apache Spark가 제공하는 Resilient Distributed Dataset(RDD)라는 추상화 계층이다. RDD는 불변성, 자동 복구, 파티셔닝을 통해 데이터 소스와 연산 로직을 느슨하게 결합하고, SQL, 머신러닝, 그래프 처리 등 다양한 워크로드를 동일한 API로 다룰 수 있게 한다. 두 번째는 Message Passing Interface(MPI)로, 고성능 컴퓨팅(HPC) 환경에서 수천~수만 개 노드 간에 저지연, 고대역폭 통신을 보장한다. 기존 Spark는 JVM 기반의 고수준 연산에 최적화돼 CPU‑집약적 혹은 메모리‑집중형 작업에 강점이 있지만, 복잡한 수치 시뮬레이션이나 대규모 행렬 연산 등은 MPI에 비해 효율이 떨어진다.
본 연구는 Spark의 작업 스케줄러와 MPI의 프로세스 관리 인터페이스(Process Management Interface, PMI)를 연결한다. 구체적으로, Spark 드라이버는 각 Executor에 MPI 런타임을 초기화하도록 명령하고, Executor 내부에서 MPI_Init, MPI_Comm_spawn 등을 호출해 다중 프로세스 그룹을 형성한다. 이렇게 하면 하나의 Spark 작업 안에서 다중 MPI 프로세스가 동시에 실행되어, 데이터 파이프라인의 앞단(RDD 기반 전처리·필터링)과 뒤단(MPI 기반 고성능 재구성) 사이에 메모리 복사 없이 직접적인 데이터 흐름이 가능해진다.
핵심 기술적 도전은 다음과 같다. 첫째, Spark와 MPI의 서로 다른 실행 모델을 조화시키는 것이다. Spark는 작업 단위가 태스크이며, 각 태스크는 독립적인 JVM 인스턴스에서 실행된다. 반면 MPI는 전역 통신 세계(World)를 전제로 하며, 모든 프로세스가 시작 시점에 서로를 인식해야 한다. 이를 해결하기 위해 논문은 PMI 기반의 동적 프로세스 생성 방식을 채택하고, Spark Executor가 MPI 프로세스 그룹의 ‘리더’ 역할을 수행하도록 설계했다. 둘째, 데이터 포맷 호환성이다. RDD는 Java/Scala 객체 혹은 바이너리 블록 형태로 데이터를 보관하지만, MPI는 일반적으로 C/C++ 포인터 기반 배열을 기대한다. 저자들은 Spark의 Tungsten 메모리 관리와 Arrow 컬럼형식 등을 활용해 제로‑카피(Zero‑Copy) 전송 파이프라인을 구현, 데이터 직렬화 비용을 최소화했다. 셋째, 장애 복구 메커니즘이다. Spark는 RDD 파티션 손실 시 재계산을 자동으로 수행하지만, MPI는 일반적으로 체크포인팅 없이 실패 시 전체 작업을 재시작한다. 논문은 Spark의 재시도 로직을 MPI 레벨에 매핑해, 실패한 파티션만 재생성하고 나머지는 기존 MPI 연산 결과를 재활용하도록 하여 전체 시스템의 내결함성을 확보했다.
성능 평가에서는 온라인 Ptychography와 Tomographic 재구성 두 가지 실제 과학 워크플로우를 대상으로 실험했다. Ptychography는 회절 이미지의 겹침 영역을 이용해 물체의 복소수 투과함수를 복원하는데, 매 프레임당 수천 개의 FFT와 역FFT 연산이 필요하다. 기존 Spark‑only 파이프라인은 CPU 기반 FFT로 인해 1 s당 10 frame 이하의 처리율을 보였지만, Spark‑MPI 결합 후 GPU‑가속 MPI FFT 라이브러리를 활용해 1 s당 80 frame 이상을 실시간으로 처리했다. Tomography는 3 D 재구성을 위해 수천 장의 투영 이미지를 역투영(back‑projection)하는 작업으로, MPI 기반의 대규모 행렬 곱셈이 핵심이다. 실험 결과, Spark‑MPI 파이프라인은 전체 재구성 시간을 70 % 이상 단축하고, 클러스터 규모가 증가함에 따라 선형에 가까운 확장성을 보였다.
이와 같이 Spark‑MPI는 데이터 전처리·정제 단계의 유연성과 고성능 수치 연산 단계의 효율성을 동시에 제공한다. 특히 실시간 혹은 근실시간(near‑real‑time) 요구가 있는 실험 시설—예컨대 X‑ray 자유 전자 레이저(FEL), 입자 가속기, 대형 현미경—에서 데이터 흐름을 끊김 없이 처리하고, 즉시 피드백을 제공함으로써 실험 설계·조정에 큰 이점을 제공한다. 향후 연구 방향으로는 자동화된 파이프라인 최적화, 다양한 하드웨어 가속기(CPU, GPU, FPGA)와의 통합, 그리고 클라우드 기반 서버리스 환경에서의 Spark‑MPI 배포 모델이 제시된다.
댓글 및 학술 토론
Loading comments...
의견 남기기