Parallelisation of equation-based simulation programs using kernel code generation techniques
Description
In this work, a methodology for the efficient evaluation of model equations in equation-based simulation programs is presented. A typical equation-based model consists of a coupled set of partial-differential equations (often referred to as kernel equations) such as mass, heat and momentum balances and transport equations, and additional algebraic and ordinary differential equations (auxiliary equations) such as boundary conditions and process performance indicators. The methodology implements the concept of kernel equations which represent a group of identical mathematical expressions operating on different variables and provides: (a) an API for the specification of kernel equations, (b) a method for the generation of the source code for kernels in multiple languages targeting different APIs/frameworks, and (c) a method for evaluation of coupled kernels and auxiliary equations on multiple computing devices/architectures. The auxiliary equations are typically evaluated using general-purpose processors while kernels are evaluated on streaming processors/accelerators or heterogeneous systems. The methodology is implemented as a part of the Open Compute Stack (OpenCS) framework. The kernels approach is applied to simulation of two large-scale models. Two performance-critical phases of the numerical solution are analysed: evaluation of residuals and evaluation of derivatives (used for a preconditioner). Execution times of individual phases and the overall performance are compared and discussed. The performance of the kernels concept are compared to the performance of the existing approach where all equations are treated individually and evaluated using the Compute Stack Machine byte-code instructions, and to the tailor-made C implementations.
Files
Parallelisation of equation-based simulation programs using kernel code generation techniques.pdf
Files
(527.5 kB)
Name | Size | Download all |
---|---|---|
md5:d5a75733d1851a311b91afee40e7a6fc
|
527.5 kB | Preview Download |