Results 1 -
8 of
8
A Case for Source-Level Transformations in MATLAB
- In Proceedings of the Second Conference on Domain-Specific Languages
, 1999
"... In this paper, we discuss various performance overheads in MATLAB codes and propose different program transformation strategies to overcome them. In particular, we demonstrate that high-level source-to-source transformations of MATLAB programs are effective in obtaining substantial performance gains ..."
Abstract
-
Cited by 17 (1 self)
- Add to MetaCart
In this paper, we discuss various performance overheads in MATLAB codes and propose different program transformation strategies to overcome them. In particular, we demonstrate that high-level source-to-source transformations of MATLAB programs are effective in obtaining substantial performance gains regardless of whether programs are interpreted or later compiled into C or FORTRAN. We argue that automating such transformations provides a promising area of future research. 1 Introduction MATLAB is a programming language and development environment which is popular in many application domains like signal processing and computational finance that involve matrix computations. There are many reasons for its popularity. First, MATLAB is a relatively high-level, untyped language in which matrices are a built-in data type with a rich set of primitive operations. Second, MATLAB programs are interpreted, making MAT- 0 This work was supported by NSF grants CCR-9720211, EIA-9726388 and ACI-9870...
On the Future of Problem Solving Environments
-
, 2000
"... In this paper we review the current state of the problem solving environment (PSE) field and make projections for the future. First we describe the computing context, the definition of a PSE and the goals of a PSE. The state-of-the-art is summarized along with sources (books, bibliographics, web sit ..."
Abstract
-
Cited by 15 (2 self)
- Add to MetaCart
In this paper we review the current state of the problem solving environment (PSE) field and make projections for the future. First we describe the computing context, the definition of a PSE and the goals of a PSE. The state-of-the-art is summarized along with sources (books, bibliographics, web sites) of more detailed information. The principal components and paradigms for building PSEs are presented. The discussion of the future is given in three parts: future trends, scenarios for 2010/2025, and research
An Environment for the Development of Numerical Programs Using MATLAB
- In this book
, 1997
"... This paper describes an environment for the development of numerical programs using MATLAB. The environment includes modules that allow MATLAB programs to be analysized and then optimized, both automatically and semi-automatically. Code generators included in the environment can generate Fortran 90, ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
This paper describes an environment for the development of numerical programs using MATLAB. The environment includes modules that allow MATLAB programs to be analysized and then optimized, both automatically and semi-automatically. Code generators included in the environment can generate Fortran 90, C++, or MATLAB code once it has been optimized. 1 Introduction Scientific applications rely upon numerical algorithms to effectively utilize high-performance computers; however, the tasks required to provide an application developer with efficient algorithms can be very complex. The development of these algorithms and their effective use in application codes is an iterative process involving the refinement of the algorithms and their implementations, and the tuning of parameters to match the machine architecture and the application context. This process continues during the lifetime of the algorithm, as the algorithm and its implementation are updated. Furthermore, when the algorithm is po...
On the Use of Algebraic and Structural Information in a Library Prototyping and Development Environment
- In Proc. 15th IMACS World Congress on Scientific Computation, Modelling and Applied Mathematics
, 1997
"... Techniques are introduced that utilize structural information to improve the code generation while rapid prototyping numerical algorithms with FALCON. These techniques are then extended to also modify the data representation allowing even further improvements in the code. Finally, results are presen ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
Techniques are introduced that utilize structural information to improve the code generation while rapid prototyping numerical algorithms with FALCON. These techniques are then extended to also modify the data representation allowing even further improvements in the code. Finally, results are presented that illustrate the performance improvements possible from the techniques. INTRODUCTION Scientific applications rely upon numerical algorithms to effectively utilize high-performance computers; however, the steps necessary to provide an application developer with efficient algorithms can be very complex, therefore problem solving environments (PSEs) that help the user in this endeavor are desirable. A typical scenario has the user who needs to accomplish some problem-solving task (e.g. consisting of input, simulation, and output steps) and in response designs a solution method and implements it on the target computational platform(s). In many instances the above process is repeated unt...
FLAMES2S: From Abstraction to High Performance
, 2008
"... The FLAME project advocates representing matrix algorithms, whether typeset or in code, at the same level of abstraction that is used to explain such algorithms on a chalk board. While this has allowed us to modernize development of libraries with functionality that includes the level-3 BLAS and muc ..."
Abstract
- Add to MetaCart
The FLAME project advocates representing matrix algorithms, whether typeset or in code, at the same level of abstraction that is used to explain such algorithms on a chalk board. While this has allowed us to modernize development of libraries with functionality that includes the level-3 BLAS and much of LAPACK, performance has been an issue for algorithms that cast most computation in terms of level-1 and level-2 BLAS. We show how this can be overcome with a source-to-source transformer that takes a representation that uses the FLAME/C API as input and yields code in a more traditional style (indexed loops and direct calls to BLAS routines). Impressive performance is demonstrated even when level-2 BLAS kernels are implemented in terms of optimized level-1 BLAS kernels. Thus, developers can finally fully embrace these new abstractions and tools for the development of linear algebra libraries. 1
Transforming Linear Algebra Libraries: From Abstraction to High Performance
"... The FLAME project advocates representing matrix algorithms, whether typeset or in code, at the same level of abstraction that is used to explain such algorithms on a chalk board. While this has allowed us to modernize development of libraries with functionality that includes the level-3 BLAS and muc ..."
Abstract
- Add to MetaCart
The FLAME project advocates representing matrix algorithms, whether typeset or in code, at the same level of abstraction that is used to explain such algorithms on a chalk board. While this has allowed us to modernize development of libraries with functionality that includes the level-3 BLAS and much of LAPACK, performance has been an issue for algorithms that cast most computation in terms of level-1 and level-2 BLAS. We show how this can be overcome with a source-to-source transformer that takes a representation that uses the FLAME/C API as input and yields code in a more traditional style (indexed loops and direct calls to BLAS routines). Impressive performance is demonstrated even when level-2 BLAS kernels are implemented in terms of optimized level-1 BLAS kernels. Thus, developers can finally fully embrace these new abstractions and tools for the development of linear algebra libraries.
and
"... This paper discusses how to achieve high-performing portability for dense matrix libraries by expressing them at a high level of abstraction and mechanizing the transformation to more traditional low-level implementations. In the process of pursuing this goal we encountered a number of deficiencies ..."
Abstract
- Add to MetaCart
This paper discusses how to achieve high-performing portability for dense matrix libraries by expressing them at a high level of abstraction and mechanizing the transformation to more traditional low-level implementations. In the process of pursuing this goal we encountered a number of deficiencies of existing software layers in this domain, namely the Basic Linear Algebra Subprograms (BLAS) interface. As a result, the paper is as much about the mechanical transformation itself as it is about the modifications that had to be made to these lower level interfaces in order to facilitate simplicity without sacrificing performance. Categories and Subject Descriptors: G.4 [Mathematical Software]: —Efficiency

