Simon Andreas Frimann Lund
A thesis submitted September 2015 for the degree of Doctor of Philosophy and defended December 12, 2015.
The PhD School of Science
Faculty of Science
Niels Bohr Institute, eScience, University of Copenhagen
A High Performance Backend for Array-Oriented Programming on Next-Generation Processing Units
The financial crisis, which started in 2008, spawned the HIPERFIT research center as a preventive measure against future financial crises. The goal of prevention is to be met by improving mathematical models for finance, the verifiable description of them in domain-specific languages and the efficient execution of them on high performance systems.
This work investigates the requirements for, and the implementation of, a high performance backend supporting these goals. This involves an outline of the hardware available today, in the near future and how to program it for high performance. The main challenge is to bridge the gaps between performance, productivity and portability.
A declarative high-level array-oriented programming model is explored to achieve this goal and a backend implemented to support it. Different strategies to the backend design and application of optimizations are analyzed and experimentally tested. Resulting in the design and implementation of Bohrium a runtime-system for transforming, scheduling and executing array-oriented programs.
Multiple interfaces for existing languages such as Python, C++, C#, and F# have been built which utilize the backend. A suite of benchmarks applications, implemented in these languages, demonstrate the high-level declarative form of the programming model. Performance studies show that the high-level declarative programming model can be used to not only match but also exceed the performance of hand-coded implementations in low-level languages.