MetaCL - A Model-Based Approach to Programming Heterogeneous Architectures Using OpenCL
Crosswy, William Spencer
With demand for high-performance computing at an all-time high, especially from the scientific/numerical analysis community, leveraging the power of existing heterogeneous architectures has become increasingly desirable. The attempt to use GPUs for non-graphics computations has bred programming models and innovative architectures that have trended towards a general-purpose computing platform. The latest generation of programming tools includes OpenCL, a promising general-purpose programming model designed to target a variety of architectures without using legacy graphics abstractions. However, OpenCL application development is still tightly coupled to both the OpenCL specification and the architecture of the system on which the application is running. This thesis describes the development of MetaCL, a toolchain that uses model-based engineering principles to program heterogeneous architectures using OpenCL. A Domain-Specific Modeling Language is defined, capable of expressing OpenCL applications as a combination of visual models describing a real-time algorithm, a hardware platform, and the deployment of the algorithm to that platform. A model interpreter analyzes these models and produces executable OpenCL applications. The MetaCL toolchain has proven to be an effective approach to programming heterogeneous architectures by producing OpenCL applications that fully utilize the computational abilities of the hardware on which they are deployed. This model-based approach provides a desirable level of abstraction that separates algorithm development from architectural concerns and simplifies application development as a whole.