Compiler-directive based Heterogeneous Computing for Scala

Jungjae Woo, Seongsoo Park, Sung-In Hong, Hwansoo Han · Journal of KIISE · 2023

빅데이터 시대가 도래하면서 대용량 데이터를 처리하기 위해 이종 가속기가 사용되고 있다. 대표적인 빅데이터 분석 프레임워크인 Apache Spark는 Scala 언어로 구현되어 있으므로 Scala로 구현된 프로그램을 CUDA, OpenCL 등으로 재작성 해야 이종 가속기를 사용할 수 있다. TornadoVM은 Java 컴파일지시문을 사용하여 Java 프로그램을 OpenCL로 자동변환한다. Scala는 컴파일 결과물로써 동일한 형태의 바이트코드를 Java와 공유하지만 현재 Scala 컴파일러는 TornadoVM이 OpenCL로 변환하는데 필요한 수준의 컴파일지시문을 지원하지 않는다. 본 논문에서는 Scala에서 컴파일지시문을 지원하여 TornadoVM을 통해 Scala 프로그램을 OpenCL로 변환할수 있도록 개선했고, 그 성능을 검증하였다. 이를 사용하여 Apache Spark 등의 Scala 프로그램에서 GPU 가속기를 쉽게 사용할 수 있을 것으로 기대한다.

Read the paper · More papers on PaperTik