Research Projects

  • Lift is a project aiming to achieve performance portability across modern parallel architectures. The Lift compiler transforms a program expressed in the high-level Lift programming language into optimised low-level OpenCL code. In this transformation optimisations are automatically explored using a set of rewrite rules. Lift is open source software available on GitHub. Lift has been described in multiple research publications. Lift is actively developed by a research team including currently six PhD students based in Scotland and Germany.

  • PACXX allows programming of accelerators with modern C++. PACXX is developed by Michael Haidl at the University of Münster. In a series of collaborative publications we explore challenges of heterogeneous compiler implementations and the design of modern C++ range-based libraries for parallel programming.

  • GPU Compilation for Interpreted Languages is the one of the first solutions for compiling a dynamic interpreted programming language – namely R – to GPU code. The generation of GPU code happens at runtime after crucial information of the program, such as data types, have been observed by profiling. Juan Fumero has developed our implementation which is described in our recent paper.

  • Marawacc is a solution for GPU programming from Java. Marawacc combines a library interface similar to the stream API from Java 8 and a compiler which generates OpenCL code from Java byte code at runtime. Data management optimisations eliminate the overhead of data marshalling. Marawacc is open source software available on Bitbucket. Marawacc has been described in multiple publications and has been developed by Juan Fumero.

  • SkelCL is a library providing high-level abstractions to alleviate programming of modern parallel heterogeneous systems comprising of multi-core CPUs and GPUs. SkelCL is open source software available on GitHub. SkelCL has been described in multiple research publications. SkelCL is no longer under active development.