  The pervasive adoption of Deep Learning (DL) and Graph Processing (GP) makes
it a de facto requirement to build large-scale clusters of heterogeneous
accelerators including GPUs and FPGAs. The OpenCL programming framework can be
used on the individual nodes of such clusters but is not intended for
deployment in a distributed manner. Fortunately, the original OpenCL semantics
naturally fit into the programming environment of heterogeneous clusters. In
this paper, we propose a heterogeneity-aware OpenCL-like (HaoCL) programming
framework to facilitate the programming of a wide range of scientific
applications including DL and GP workloads on large-scale heterogeneous
clusters. With HaoCL, existing applications can be directly deployed on
heterogeneous clusters without any modifications to the original OpenCL source
code and without awareness of the underlying hardware topologies and
configurations. Our experiments show that HaoCL imposes a negligible overhead
in a distributed environment, and provides near-linear speedups on standard
benchmarks when computation or data size exceeds the capacity of a single node.
The system design and the evaluations are presented in this demo paper.
