Results 1 -
3 of
3
A Domain-Specific Language for the Generation of Optimized SIMD-Parallel Assembly Code
, 2007
"... We present a domain-specific language (DSL) embedded into Haskell that allows mathematicians to formulate novel high-performance SIMD-parallel algorithms for the evaluation of special functions. Developing such functions involves explorations both of mathematical properties of the functions which le ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
We present a domain-specific language (DSL) embedded into Haskell that allows mathematicians to formulate novel high-performance SIMD-parallel algorithms for the evaluation of special functions. Developing such functions involves explorations both of mathematical properties of the functions which lead to effective (rational) polynomial approximations, and of specific properties of the binary representation of floating point numbers. Our framework includes support for estimating the effectiveness of different approximation schemes in Maple. Once a scheme is chosen, the Maple-generated component is integrated into the code generation setup. Numerical experimentation can then be performed interactively, with support functions for running standard tests and tabulating results. Once a satisfactory formulation is achieved, a code graph representation of the algorithm can be passed to other components which produce C function bodies, or to a state-of-the-art scheduler which produces optimal or near-optimal schedules, currently targeting the “Cell Broadband Engine ” processor. Encapsulating a considerable amount of knowledge about specific “tricks ” in DSL constructs allows us to produce algorithm specifications that are precise, readable, and compile to optimalquality
ii
, 2007
"... iii Scripting and interpreted languages are important tools for software engineering and are often used in place of compiled languages for application development. While they en-able a high level of developer productivity, their run-time environments limit the overall performance attainable with any ..."
Abstract
- Add to MetaCart
(Show Context)
iii Scripting and interpreted languages are important tools for software engineering and are often used in place of compiled languages for application development. While they en-able a high level of developer productivity, their run-time environments limit the overall performance attainable with any given application. To develop performance-critical appli-cations, developers continue to rely on compiled languages. However, tuning applications in compiled languages is a time consuming process that affects the overall productivity of development teams. Additionally, recent changes in microprocessor design have begun to push the limits of compiled languages, making it difficult for developers to fully utilize the available hardware resources. This thesis presents Synthetic Programming, a new approach to generating high-per-formance code and developing parallel applications from scripting languages. Synthetic programming is based on the synthetic programming environment, a collection of libraries that provide direct access to low-level processing resources from the Python programming