Ctadel: A Generator of Efficient Numerical Codes Ctadel: A Generator of Efficient Numerical Codes
نویسنده
چکیده
Algorithm Templates. According to Kant and Steinberg [82], linear solvers and related algorithms can be cast in the form of so-called algorithm templates. Templates are algebraic structures that capture the essentials of an algorithm, elaborated with problem-specific aspects, and can be transformed into a chosen target language. The SciNapse system [2] uses algorithm templates in the automatic derivation of numerical 2.6. RELATED WORK 29 solver routines for PDE-based problems. The algorithm templates are the building blocks for the foundations of numerical code generation [80]. Numerical Libraries. Numerical libraries such as the Basic Linear Algebra Subroutines (blas) are popular in scientific applications because of the standardization of the linear numerical routines [37]. Furthermore, versions of blas are available that are optimized for the computer architectures on which they run. The lapack routines is a collection of direct linear solvers [5]. scalapack is the parallel version of the routines, which is optimized for shared virtual memory parallel machines. High Performance Fortran. The High Performance Fortran (HPF) language is an extended version of Fortran 77 with language primitives for the distribution of arrays and the data parallel execution of array assignments [74]. The language is mainly useful for solving of regular problems in parallel that require no indirect addressing. OpenMP. The OpenMP consortium [108] has proposed a standard for compiler directives in Fortran 77 programs that explicitly expose the parallelism. OpenMP is an industry-standard application program interface (API) for multi-platform shared-memory programming. OpenMP defines a sharedmemory parallelism model for the Fortran language. Restructuring and parallelizing compilers use the directives for the effective parallelization of the Fortran 77 source codes. Coordination languages. Another approach in the field of application development for parallel computing is the so-called “coordination” approach. Carriero and Galernter [25] have suggested that parallelism and communication, collectively termed coordination, should be specified above the coding of calculations. The coordination is encapsulated using coordination languages. Example coordination languages are PCN [46] and functional skeletons providing coordination operators [34]. The Data-Parallel Scientific Modelling Language (dpml) [50] is a coordination language for describing scientific problems such as climate and weather forecast models. It has been used for the csiro Atmospheric General Circulation Model. dpml compiles high-level descriptions into Fortran 90/HPF with explicit data parallelism using the dp77 [50] translation system. However, the generated codes are not efficient because of the lack of algebraic restructuring and compiler optimization techniques. Communication Libraries. The parallelization of an application for distributed parallel computation requires the communication of data between the processors on the parallel machine. For the explicit communication of data in a program, the programmer can use the communication primitives of an 30 CHAPTER 2. PROBLEM SOLVING ENVIRONMENTS existing communication library. Communication libraries are available that are tailored to existing computer platforms. Hence, with the same communication primitives, the programmer can write a program that is portable to many distributed parallel machines. Examples of popular communication libraries for distributed parallel computation are the Parallel Virtual Machine (PVM) libraries [56], the MPI communication library [60], and Fast Messages (FM) [104].
منابع مشابه
Automatic Code-Generation for Large Scale Numerical Models
In this paper we present an overview of current and on-going research on the CTADEL problem-specific code generator. The CTADEL system provides an automated means of generating specific high performance scientific codes, optimized for a number of different architectures. We address problems like implicit equations and a SemiLagrangian method for semi-implicit schemes and show some experiments w...
متن کاملThe CTADEL Application Driver for Numerical Weather Forecast Systems
The CTADEL Code-generation Tool for Applications based on Differential Equations using high-level Language specifications is a software environment for generating multi-platform high-performance codes for partial differential equations based problems. The CTADEL system is used as an application driver for the HIRLAM numerical weather forecast system. As such, the CTADEL system can be viewed as ...
متن کاملPDE-Oriented Language Compilation and Optimization with Ctadel for Parallel Computing
In this paper we focus on generating efficient parallel codes for solving scientific problems within large-scale performance-critical applications. More specifically, we present techniques for high-level symbolic optimization for automatic generation of efficient codes that numerically solve sets of computationally expensive right-hand sides (RHSs) of systems of partial differential equations (...
متن کاملCtadel: a Generator of Eecient Code for Pde-based Scientiic Applications
In this paper, we present the Ctadel system, a Code-generation Tool for Applications based on Diierential Equations using a very high level Language speciication. The Ctadel system generates eecient and vectorizable Fortran 77 code automatically from a very high level language description of a model described by partial diierential equations (PDEs). The system combines algebraic simpliication a...
متن کاملThe Construction of Flux - Limiting AdvectionAlgorithms through Program
The Ctadel code generator is a tool for the automatic generation of PDE based scientiic models and generates eecient code for various computational platforms from an independent high level language description. It was applied for the generation of code to compute the dynamical tendencies within the Hirlam weather forecast model. In this paper we will use Ctadel for the implementation of numeric...
متن کامل