BZDEV: SciTools'98 abstract

From: Todd Veldhuizen (tveldhui@oonumerics.org)
Date: Thu Jun 11 1998 - 12:49:11 EST


Blitz++ will be presented at the SciTools'98 workshop this fall
(Modern Software Tools for Scientific Computing). Here's the abstract:

 Blitz++: The library that thinks it is a compiler

Scientific computing requires domain-specific abstractions,
such as arrays, matrices, and tensors. Building such
abstractions into a language (such as arrays in Fortran 90)
can result in fast code, but may also be limiting: such
abstractions are hard to extend or modify, and economics
restrict the number of features which may be included
in a commercial compiler.

An alternative is to use languages which allow library
developers to create their own abstractions. Many problem
domains which have been addressed in the past by custom
languages (interval arithmetic, sparse arrays, adaptive
mesh refinement) have now been successfully tackled by C++
libraries. Unfortunately, compilers have difficulty
optimizing such libraries, because they lack semantic
knowledge of the abstractions: instead of seeing sparse
array operations, they see pointers and loops.

The solution may be to move high-level optimizations out
of compilers and into libraries. The Blitz++ library
demonstrates how this may be done in C++. The mechanisms
are somewhat crude, but the results are appealing:
Blitz++ arrays offer functionality and efficiency
competitive with Fortran 90, but without any language
extensions. The Blitz++ library is able to parse and
analyze array expressions at compile time, and performs
loop transformations which have until now been the
responsibility of optimizing compilers.
--------------------- blitz-dev list --------------------------------
* To subscribe/unsubscribe: mail to majordomo@oonumerics.org, with
"subscribe blitz-dev" or "unsubscribe blitz-dev" in the body of the message
* Blitz++ web page: http://oonumerics.org/blitz/



This archive was generated by hypermail 2b29 : Wed Feb 20 2002 - 04:30:04 EST