Results 1  10
of
12
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 24 (1 self)
 Add to MetaCart
(Show Context)
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 23 (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
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 3 (0 self)
 Add to MetaCart
(Show Context)
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...
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 3 (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.
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
(Show Context)
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.
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
(Show Context)
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.
Algorithmic
, 2007
"... The final copy of this thesis has been examined by the signatories, and we find that both the content and the form meet acceptable presentation standards of scholarly work in the above mentioned discipline. iii ..."
Abstract
 Add to MetaCart
(Show Context)
The final copy of this thesis has been examined by the signatories, and we find that both the content and the form meet acceptable presentation standards of scholarly work in the above mentioned discipline. iii
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
(Show Context)
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.
Abstract
"... The FALCON development environment was designed around three basic data representations: scalars, vectors, and dense matrices. Utilizing the FALCON interactive restructuring system, the environment has been enhanced to allow the identification of structures within sparse matrices, such as diagonal m ..."
Abstract
 Add to MetaCart
(Show Context)
The FALCON development environment was designed around three basic data representations: scalars, vectors, and dense matrices. Utilizing the FALCON interactive restructuring system, the environment has been enhanced to allow the identification of structures within sparse matrices, such as diagonal matrices or symmetric matrices, and the use of this information for improving performance of the generated code. In addition, the environment supports the modification of the representation of the data. Such modifications have been shown to provide significant performance improvements. 1