Benchmark for
Templated
Libraries project
Laurent Plagne EDF/R&D/SINETICS
Introduction
This project aims to complete performance benchmarking for numerical libraries in order
to evaluate the use of C++ template based libraries in scientific computing codes
-
BLAS 1,2,3 and lapack calculations are performed using different tools (libraries).
Up to now calculation performance (MFLOPS) using the following C++ template libraries
-
Blitz++,
MTL,
ublas,
tvmet
-
are compared with non OO libs
-
BLAS
(LAPACK),
ATLAS, vendor BLAS
(Intel)
-
and native language implementation in
-
C, C++ (STL), F77.
The code is designed as generic and modular as possible using generic programming techniques.
Thus, adding new numerical libraries or new numerical tests requires minimal effort.
This modularity feature is essential since we rely on cooperative collaboration to increase scope and validity of these benchmarks. Every contribution (adding a tested library, a numerical test, porting on other platforms or providing better compilation flags) is not only welcomed but strongly awaited.
Bench Example
Benchmark results
License
Gnu General Public License
News
- 24/09/2002: BTL Launch
- 01/10/2002: ublas update: Improved uBLAS usage (Many thanks to Joerg Walter for his support) + minor fixes
- 16/10/2002: new test : AtA and AAt product. by Joerg Walter
- 14/01/2003:
- New library : Blitz tinyvector and tinymatrix (suggested by J.C. Cummings).
- Improved f77 sources (provided by M.F. Robeau).
- Axpy and matrix vector product via STL algorithm (suggested by F. Petitjean).
- 21/01/2003: New library : tvmet library by O. Petzold
- 24/01/2003: Include discussion about != blitz usage. here for details
Latest Release
Important disclaimer :
We tried to give all the possible information about benchmark results
(compiler flags, snippet of codes, sources files...) but one should keep in mind possible incorrect usage
of libraries (inefficient compilation flags, incorrect installation...). If you notice such a problem please let us know
and we will upgrade the page !
TODO list :
- Valarray : implement Valarray interface.
- Test the ublas-ATLAS combination.
- Achieve a correct installation of MTL
- POOMA : evaluate POOMA performances (at least in the sequential mode)
Discussion of this project :
Contribution, contact, support :
How to contribute :
- Add benchmark results for a new machine (and) or new compiler :
pack the data files (BTL/libs/*/*.dat), the machine/compiler description (including compilation flags) in a tar file and send it to me via e-mail or via the
opencascade page .
- Add new bench action or new library :
send the complete tar file of your augmented version of BTL.
Last modified: Fri Mar 11 15:01:31 CET 2005