DASL: A Scala-based DSL for Graph Analytics on GPUs

For data intensive analytic challenges, memory bandwidth, not processor speed, is the primary performance limitation. Graphics processing units (GPUs) provide superior bandwidth to main memory and can deliver significant speedups over CPUs. However, it is not trivial to develop GPU accelerated graph algorithms. In contrast, to scale applications onto multicore, parallel architectures it requires significant expertise, including intimate knowledge of the CPU and GPU memory systems, and detailed knowledge of a GPU programming framework such as OpenCL or CUDA. To enable analytic experts to implement complex graph applications that efficiently run on GPUs we have developed a domain-specific language called DASL and a corresponding execution system that executes DASL programs by automatic translation into program code that is optimized for GPUs. In the talk I will introduce DASL based on a few simple examples, provide a technical overview on Blazegraph DASL, and discuss some aspects of the approach in more depth, including the translation of DASL statements and the integration of user defined functions.