Blaze 2.2 débarque en version 2.2
Avec sa centaine d'améliorations, cette version apporte le support des matrices symétriques
Blaze est une bibliothèque mathématique C++, open source pour les calculs arithmétiques denses. Grâce à son implémentation utilisant les expressions templates intelligentes à la pointe de la technique, Blaze associe la facilité d'utilisation d'un langage spécifique au domaine aux performances digne du HPC. Ainsi, c'est l'une des plus rapides et intuitives bibliothèques mathématiques C++.
Parmi ses fonctionnalités, vous retrouverez :
- de hautes performances grâce à l'intégration des bibliothèques BLAS et des améliorations manuelles des noyaux mathématiques du monde du HPC ;
- une exécution parallèle avec OpenMP, les threads C++11 et Boost ;
- une bibliothèque intuitive et aussi facile d'utilisation qu'un langage spécifique au domaine ;
- une arithmétique unifiée que ce soit pour les vecteurs et matrices denses ou éparses ;
- une arithmétique rigoureusement testée ;
- un code C++ portable de haute qualité.
Voici un exemple de code pour l'addition de deux vecteurs :
Si cela vous a donné envie de tester, n'hésitez pas à lire la page d'introduction, ou encore, de voir les performances réelles de celle-ci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 #include <iostream> #include <blaze/Math.h> using blaze::StaticVector; using blaze::DynamicVector; // Instantiation of a static 3D column vector. The vector is directly initialized as // ( 4 -2 5 ) StaticVector<int,3UL> a( 4, -2, 5 ); // Instantiation of a dynamic 3D column vector. Via the subscript operator the values are set to // ( 2 5 -3 ) DynamicVector<int> b( 3UL ); b[0] = 2; b[1] = 5; b[2] = -3; // Adding the vectors a and b DynamicVector<int> c = a + b; // Printing the result of the vector addition std::cout << "c =\n" << c << "\n";
La version 2 apportait les fonctionnalités parallèles décuplant ainsi les performances de la bibliothèque. La version 2.1 continuait dans cette lignée en améliorant les capacités de parallélisation et en ajoutant le support des threads Boost et C++11.
Finalement, la version 2.2 apporte bien sûr les habituelles améliorations et corrections de bogues liées à toute nouvelle version, mais aussi le support des matrices symétriques. Grâce à celle-ci, de nouvelles optimisations aussi bien de performances que de mémoire sont possibles.
Pour finir, vous pouvez télécharger Blaze 2.2 sur Google Code. La bibliothèque est sous licence BSD.
Votre opinion
Quels sont vos besoins ? Qu'utilisiez-vous jusqu'à présent ?
Pensez-vous que le C++ a sa place dans le monde du HPC ?
Source
Site officiel
Partager