Session: 11-52-01: Computational Thermal/Fluids
Paper Number: 95034
95034 - A Domain Specific Language Applied to Phonon Boltzmann Transport for Heat Conduction
The phonon Boltzman Transport Equation(BTE) is a useful model for nanoscale heat conduction in semiconductors. When solving the equations numerically, the need for directional and spectral discretization can lead to thousands of coupled partial differential equations. This imposes significant challenges to developing efficient code, but also presents opportunities for parallel computing strategies. Optimizing such a code for a particular model configuration and computer architecture is a time consuming task requiring both heat transfer and computational specialists, and any change to the model or computing environment necessitates costly modification. One solution to this problem is automatic code generation through a higher level Domain Specific Language(DSL). This provides the flexibility to easily adapt to changes in the problem and hardware and puts the tools for creating optimized code directly in the hands of the domain scientist.
Here we present a DSL that is appropriate for a broad range of partial differential equation applications including very complex systems of equations such as the phonon BTE. Using the DLS, one can generate efficient parallel code through a high level problem description, while also having access to fine-grained tuning and even direct code modification. Unlike similar DSLs, it aims to be discretization agnostic, and currently supports finite volume and finite element methods. These distinct numerical methods can also be combined within a single computation to better suit the needs of complex problems. This is possible due to the modular software design, which enables adding support for different numerical methods, hardware architectures, and code generation targets.
The DSL is written completely in the Julia programming language, a recently developed language that is gaining popularity in the computational science community by offering performance comparable to C and Fortran in a convenient python-like programming environment. The modular design of the DSL also facilitates generating code for third-party software frameworks in other languages such as C++. By leveraging the capabilities of external code generation targets, a wider range of tools can be used when desired without needing to embed them within the DSL. A high level interface allows one to go from directly running a prototype on a personal computer, to generating a full scale simulation on a large cluster, without making substantial changes to the problem description.
We demonstrate the DSL using the phonon BTE with up to 40 frequency bands and 400 directions, resulting in 16,000 coupled equations. Different parallel strategies are described and compared. A simpler two-dimensional prototype of this problem is also used to show how with only minimal changes to the input one can shift from small scale testing to a full scale simulation. This feature makes development of a complicated simulation faster and more intuitive.
Presenting Author: Eric Heisler University of Utah School of Computing
Presenting Author Biography: Computer science graduate research assistant<br/>School of Computing, University of Utah<br/>Developing a domain specific language for partial differential equations with an emphasis on high performance code generation.
Authors:
Eric Heisler University of Utah School of ComputingSiddharth Saurav The Ohio State University
Aadesh Deshmukh University of Utah
Sandip Mazumder The Ohio State University
Ponnuswamy Sadayappan University of Utah
Hari Sundar University of Utah
A Domain Specific Language Applied to Phonon Boltzmann Transport for Heat Conduction
Paper Type
Technical Paper Publication