A. Klöckner (New York University)

Discontinuous Galerkin, Python, and GPUs: a case study

I will be describing the path from a simple, short, stand-alone code implementing an unstructured discontinuous Galerkin scheme in OpenCL and Python to 'hedge', a full-featured and high-level toolkit for solving partial differential equations discretized using discontinuous Galerkin schemes. Through a number of examples drawn from this code set of codes, I will illustrate the usefulness of run-time code generation in achieving peak performance while retaining a flexible and maintainable code base. In addition, I will touch on the advantages of combining GPUs and scripting languages into an environment in which to develop scientific codes, with particular emphasis on the packages PyOpenCL and PyCUDA. I will further briefly cover the usage of hedge for hybrid GPU+MPI parallel simulations of phenomena modeled by hyperbolic PDEs occurring in a number of applications, along with related performance results.