Skip to main content
QUICK REVIEW

[논문 리뷰] SparkCL: A Unified Programming Framework for Accelerators on Heterogeneous Clusters

Oren Segal, Philip Colangelo|arXiv (Cornell University)|2015. 05. 05.
Parallel Computing and Optimization Techniques참고 문헌 8인용 수 26
한 줄 요약

SparkCL은 Java 기반 추상화 계층을 통해 Apache Spark 생태계에 OpenCL 기반 이종 가속기(예: GPU, FPGA, APU)를 통합하는 통합 프로그래밍 프레임워크입니다. Spark에 OpenCL 기반 커널 함수와 장치 인식 전환 기능을 확장함으로써, 동일한 소스 코드로 다양한 가속기를 대상으로 하되 Spark의 데이터 플로우 모델과 원활하게 통합되도록 하여 이종 클러스터 간의 이식성과 성능 이식성을 크게 간소화합니다.

ABSTRACT

We introduce SparkCL, an open source unified programming framework based on Java, OpenCL and the Apache Spark framework. The motivation behind this work is to bring unconventional compute cores such as FPGAs/GPUs/APUs/DSPs and future core types into mainstream programming use. The framework allows equal treatment of different computing devices under the Spark framework and introduces the ability to offload computations to acceleration devices. The new framework is seamlessly integrated into the standard Spark framework via a Java-OpenCL device programming layer which is based on Aparapi and a Spark programming layer that includes new kernel function types and modified Spark transformations and actions. The framework allows a single code base to target any type of compute core that supports OpenCL and easy integration of new core types into a Spark cluster.

연구 동기 및 목표

  • Apache Spark 생태계 내에서 컴퓨팅 집약적인 워크로드를 이종 가속기(예: GPU, FPGA)로 투명하게 오프로드하는 것.
  • OpenCL과 Spark를 기반으로 한 통합 추상화 계층을 제공하여 이종 클러스터 프로그래밍의 복잡성과 분열 문제를 해결하는 것.
  • 개발자가 각각의 가속기 유형에 맞게 다시 작성하지 않고도 OpenCL 호환 장치를 대상으로 하는 단일 소스 코드를 작성할 수 있도록 하는 것.
  • Spark의 프로그래밍 모델을 새로운 커널 함수 유형과 장치 실행 의미 체계를 이해하는 수정된 전환/작업으로 확장하여 장치 실행을 지원하는 것.

제안 방법

  • Aparapi를 기반으로 한 새로운 Java-OpenCL 장치 프로그래밍 계층을 Apache Spark에 확장하여 Java에서 GPU 및 가속기 코드 생성을 가능하게 하는 것.
  • 장치 실행 의미 체계를 이해하는 새로운 커널 함수 유형과 수정된 Spark 전환/작업을 도입하는 것.
  • 고수준 Spark 작업을 이종 컴퓨팅 장치에 매핑하기 위한 이식 가능한 저수준 인터페이스로 OpenCL을 사용하는 것.
  • 장치 가용성과 워크로드 특성에 기반하여 자동으로 장치 선택 및 작업 오프로드를 수행하는 것.
  • 장치별 세부 정보를 추상화한 통합 API를 제공하여 FPGA, GPU, APU, CPU 간 투명한 실행을 가능하게 하는 것.
  • 공통 인터페이스를 통해 장치별 로직을 추상화하여 향후 새로운 가속기 유형의 확장성을 지원하는 것.

실험 결과

연구 질문

  • RQ1단일 데이터 처리 프레임워크(예: Spark) 내에서 다양한 가속기를 지원하는 통합 프로그래밍 모델을 설계하는 방법은 무엇인가요?
  • RQ2Spark 워크로드를 OpenCL 기반 가속 장치로 투명하게 오프로드하기 위해 필요한 아키텍처 확장은 무엇인가요?
  • RQ3변경 없이 여러 가속기 유형(GPU, FPGA 등)을 대상으로 하는 단일 소스 코드를 사용할 수 있는가요?
  • RQ4Spark에 OpenCL를 통합할 경우 성능, 이식성, 개발 생산성에 어떤 영향을 미치나요?
  • RQ5이종 장치 간의 원활한 로드 밸런싱과 장애 복구를 확보하기 위해 필요한 메커니즘은 무엇인가요?

주요 결과

  • SparkCL은 코드 변경 없이도 GPU, FPGA, APU 등 OpenCL 호환 장치에서 Spark 워크로드를 투명하게 실행할 수 있도록 합니다.
  • 프레임워크는 기존 Spark 실행 모델과 성공적으로 통합되어 장치 인식 의미 체계를 갖춘 표준 Spark 전환 및 작업을 지원합니다.
  • Aparapi와 OpenCL을 활용함으로써 SparkCL은 가속기에서 데이터 병렬 워크로드를 가속화하기 위한 개발 오버헤드를 감소시킵니다.
  • 통합 추상화는 새로운 가속기 유형을 쉽게 확장할 수 있도록 하여 장기적인 유지보수성과 이식성을 향상시킵니다.
  • 성능 평가 결과, 특히 데이터 병렬 커널에 대해 가속기로 오프로드할 경우 컴퓨팅 집약적인 작업에서 뚜렷한 성능 향상이 나타났습니다.
  • 프레임워크는 하드웨어 가속을 도입함과 동시에 Spark의 장애 복구성과 확장성을 유지하여 생산 환경 워크로드에 대한 실현 가능성을 입증했습니다.

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

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

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

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