Generating SkePU Code from Automatically Detected Algorithmic Patterns in C Source Programs

University essay from Linköpings universitet/Programvara och system

Author: Marcus Johansson; [2016]

Keywords: ;

Abstract: Modern heterogeneous multi-core architectures containing one or multiple GPU de- vices require expert knowledge in order to be fully utilized through parallelization by the programmer. Software written for one hardware setup might not easily be portable to work as efficiently on a differing architecture. Automatic parallelization of sequential C code to make efficient use of such architecture in an extensible man- ner would facilitate the porting of legacy code and provide a non-expert programmer with a tool granting access to modern hardware architectures. We present an early prototype of such an extensible tool-chain and attempt to apply it on domain-specific C source code. It is based on a generic tool for hierarchical pattern matching in C source codes, where the user can define own patterns and recognition rules, and a code generation back-end. We show how it, combined with existing libraries, can be used to automatically port sequential legacy code to different multicore architectures, such as multicore CPUs and GPUs. Our tool is an attempt to do this and yields valid parallelized code, but fails to reach speedup for most implemented patterns. The tool is applied on one test case, a legacy ODE implementation in C, with similar results. A reason for slowdown is discussed in the concluding section.

  AT THIS PAGE YOU CAN DOWNLOAD THE WHOLE ESSAY. (follow the link to the next page)