|
Boost : |
From: Greg Colvin (greg_at_[hidden])
Date: 1999-09-03 18:31:07
From: Andy Glew <glew_at_[hidden]>
> > Have you looked at blitz++ library ? It uses no assembler, just templates etc...
You might also check out the Matrix Template Library, Iterative Template
Library, and Generic Graph Component Library at Notre Dame:
http://www.lsc.nd.edu/research/
and especially
http://www.lsc.nd.edu/research/mtl/performance.php3
To quote:
The tests here illustrate several points.
First, they demonstrate how a single generic algorithm can provide high levels
of performance across different architectures. The same generic matrix-matrix
product algorithm provides vendor-tuned levels of performance on both the
UltraSPARC and the RS6000. (We note that the optimizations within the
algorithms are parameterized in a generic fashion and these parameters are set
appropriately for the target architecture. The code within the routine itself
is the same for both targets, however.)
Second, they demonstrate how a single generic algorithm can provide high
levels of performance across vastly different data formats. The same generic
matrix-vector product algorithm gives high levels of performance for both
dense and sparse matrix types.
Finally, they demonstrate that vendor-tuned levels of performance (or, if you
like, Fortran levels of performance) can be achieved with C++ and that this
level of performance is achievable in the presence of domain-specific
abstractions.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk