Results 1 
8 of
8
A Case for SourceLevel Transformations in MATLAB
 In Proceedings of the Second Conference on DomainSpecific 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 highlevel sourcetosource transformations of MATLAB programs are effective in obtaining substantial performance gains ..."
Abstract

Cited by 20 (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 highlevel sourcetosource 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 highlevel, untyped language in which matrices are a builtin data type with a rich set of primitive operations. Second, MATLAB programs are interpreted, making MAT 0 This work was supported by NSF grants CCR9720211, EIA9726388 and ACI9870...
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 stateoftheart is summarized along with sources (books, bibliographics, web sit ..."
Abstract

Cited by 16 (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 stateoftheart 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 semiautomatically. 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 semiautomatically. 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 highperformance 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 highperformance 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 problemsolving 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 level3 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 level3 BLAS and much of LAPACK, performance has been an issue for algorithms that cast most computation in terms of level1 and level2 BLAS. We show how this can be overcome with a sourcetosource 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 level2 BLAS kernels are implemented in terms of optimized level1 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 level3 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 level3 BLAS and much of LAPACK, performance has been an issue for algorithms that cast most computation in terms of level1 and level2 BLAS. We show how this can be overcome with a sourcetosource 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 level2 BLAS kernels are implemented in terms of optimized level1 BLAS kernels. Thus, developers can finally fully embrace these new abstractions and tools for the development of linear algebra libraries.
Library Function Selection in Compiling Octave
"... One way to address the continuing performance problem of highlevel domainspecific languages, such as Octave or MATLAB, is to compile them to a relatively lower level language for which good compilers are available. As a first step in this direction, specializing the highlevel operations in the so ..."
Abstract
 Add to MetaCart
One way to address the continuing performance problem of highlevel domainspecific languages, such as Octave or MATLAB, is to compile them to a relatively lower level language for which good compilers are available. As a first step in this direction, specializing the highlevel operations in the source, based on operand types, leads to significant gains. However, simple translation of the highlevel operations to the underlying libraries can often miss important opportunities to improve performance. This paper presents a global algorithm to select functions from a target library, utilizing the semantics of the operations as well as the platformspecific performance characteristics of the library. Making use of the library properties, the simple and easytoimplement selection algorithm is able to achieve as much as three times performance improvement for certain linear algebra kernels, over a straight mapping of operations, which are compiled to the vendortuned BLAS. 1.