SnuCL extends OpenCL to heterogeneous CPU/GPU clusters
June 27, 2012 by Tony DeYoung
Current OpenCL implementations are limited to single heterogeneous systems rather than heterogeneous CPU/GPU clusters.
SnuCL is an OpenCL open-source framework that extends the original OpenCL semantics to the heterogeneous cluster environment. The target cluster consists of a single host node and multiple compute nodes connected by Gigabit or InfiniBand switches. The host node contains multiple CPU cores and each compute node consists of a cluster of multiple CPU cores and multiple GPUs. For the programmer, SnuCL provides an illusion of a single heterogeneous system. A GPU or a set of CPU cores becomes an OpenCL compute device. SnuCL allows the application to utilize compute devices in a compute node as if they were in the host node. Thus, with SnuCL, OpenCL applications written for a single heterogeneous system with multiple OpenCL compute devices can run on the cluster without any modifications. SnuCL achieves both high performance and ease of programming in a heterogeneous cluster environment.
SnuCL consists of SnuCL runtime and compiler. The SnuCL compiler is based on the OpenCL C compiler in SNU-Samsung OpenCL framework. Currently, the SnuCL compiler supports x86, ARM, and PowerPC CPUs, AMD GPUs, and Nvidia GPUs