Incorporating application dependent information in an automatic code generating environment

In this paper, we demonstrate the necessity of including high-level information for automatic generation of efficient codes for serial, vector, and parallel computer architectures with the CTADEL code generation tool. The CTADEL Codegeneration Tool for Applications based on Differential Equations using high-level Language specifications is a programming environment developed for the generation of efficient codes for PDEbased problems. The tool has been adopted as an application driver for the HIRLAM numerical weather forecast system. More specifically, we present a framework for high-level code restructuring based on monotonicity information about the data structures used. This information is not available in state-of-the-art vectorizing and parallelizing compilers but it is of vital importance for the generation of efficient architecture-specific codes. The performance of the generated codes for a typical example problem encountered in the so-called physics routines of the HIRLAM system are compared to the hand-written production code. The performance results demonstrate the usefulness of the presented technique.