Introducing 'Bones': a parallelizing source-to-source compiler based on algorithmic skeletons

  • Authors:
  • Cedric Nugteren;Henk Corporaal

  • Affiliations:
  • Eindhoven University of Technology, The Netherlands;Eindhoven University of Technology, The Netherlands

  • Venue:
  • Proceedings of the 5th Annual Workshop on General Purpose Processing with Graphics Processing Units
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

Recent advances in multi-core and many-core processors requires programmers to exploit an increasing amount of parallelism from their applications. Data parallel languages such as CUDA and OpenCL make it possible to take advantage of such processors, but still require a large amount of effort from programmers. A number of parallelizing source-to-source compilers have recently been developed to ease programming of multi-core and many-core processors. This work presents and evaluates a number of such tools, focused in particular on C-to-CUDA transformations targeting GPUs. We compare these tools both qualitatively and quantitatively to each other and identify their strengths and weaknesses. In this paper, we address the weaknesses by presenting a new classification of algorithms. This classification is used in a new source-to-source compiler, which is based on the algorithmic skeletons technique. The compiler generates target code based on skeletons of parallel structures, which can be seen as parameterisable library implementations for a set of algorithm classes. We furthermore demonstrate that the presented compiler requires little modifications to the original sequential source code, generates readable code for further fine-tuning, and delivers superior performance compared to other tools for a set of 8 image processing kernels.