The Bones Source-to-Source Compiler Manual
Parallel Architecture Research, Eindhoven
Parallel Architecture Research Eindhoven, 2012
@article{nugteren2012bones,
title={The Bones Source-to-Source Compiler Manual},
author={Nugteren, C.},
year={2012}
}
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. To address the challenge of parallel programming, we introduce Bones. Bones is a source-to-source compiler based on algorithmic skeletons and a new algorithm classification. The compiler takes C-code annotated with class information as input and generates parallelized target code. Targets include NVIDIA GPUs (through CUDA), AMD GPUs (through OpenCL) and x86 CPUs (through OpenCL and OpenMP). Bones is open-source, written in the Ruby programming language, and is available through our website. The compiler is based on the C-parser CAST, which is used to parse the input code into an abstract syntax tree (AST) and to generate the target code from a transformed AST. This document is meant as a manual for users of Bones. It includes usage instructions, an installation guide and pointers to further documentation. It furthermore contains an overview of the tool itself and the skeletons, a mandatory read for users that plan on modifying or extending the skeletons and/or targets currently available in Bones.
April 25, 2012 by hgpu