On 25 September 2013 20:13, Joachim Berdal Haga <[email protected]> wrote: > FWIW, I have only good experiences with Eigen.
Good to know. > From what I gather, Blaze is > very fast but also limited in that it requires both matrices and views into > them to be memory aligned, which means arbitrary matrix views are not > possible [1]. I'm very reluctant to consider Blaze. I would prefer a more established library with an open development model, and if it's a dependency it must be available as a package on major Linux distributions, and in Macports and Homebrew. Eigen ticks these boxes, and I believe Blaze falls down on each point. Moreover, Eiegn provides other functionality that could be useful, e.g. sparse linear algebra. > The simplicity of header-only use is worth a lot to me. > Me too. It's a major motivation for considering a change. Garth > [1] > http://listengine.tuxfamily.org/lists.tuxfamily.org/eigen/2012/08/msg00050.html > > -j. > > > On 19 September 2013 11:30, Simone Pezzuto <[email protected]> wrote: >> >> I would recommend these documents: >> >> >> http://scicomp.stackexchange.com/questions/351/recommendations-for-a-usable-fast-c-matrix-library >> >> http://code.google.com/p/blaze-lib/wiki/Benchmarks >> >> Blaze is a new library and it exploits both expressions templates at small >> sizes >> and blas/lapack backend at large sizes (both static and dynamic sizing). >> >> Eigen development has slowed down over the last 3 years. I like the idea >> of having a self-container >> and only-headers library, but sometimes reinventing the wheel is not a >> good (e.g. emulate blas/lapack). >> Also, because some aliasing issues, it is delicate to include eigen >> objects as class attributes. >> >> I can confirm that installing Armadillo is painful if you don't want to >> patch CMakeLists.txt. >> >> >> Probably Eigen is still a good choice, but I would take a look at Blaze >> too. >> >> >> Simone >> >> >> >> >> 2013/9/19 Anders Logg <[email protected]> >>> >>> On Thu, Sep 19, 2013 at 10:14:43AM +0100, Garth N. Wells wrote: >>> > I've been thinking about switching to Eigen >>> > (http://eigen.tuxfamily.org/) from Armadillo >>> > (http://arma.sourceforge.net/) in DOLFIN to handle dense matrix/vector >>> > problems. The reasoning is: >>> > >>> > 1. Armadillo is a pain to install (getting it to link properly to BLAS >>> > being the main problem) >>> > 2. Eigen header only, but can link to BLAS if desired >>> > 3. Eigen uses row-major or column-major storage, whereas Armadillo >>> > offers only column major. Column-major makes interaction with the >>> > GenericTensor::get/set functions clumsy with Armadillo, often >>> > requiring copying (this is the most pressing reason for me proposing a >>> > change now). >>> > 4. Eigen has some good serial sparse linear algebra support >>> > >>> > Performance wise, from the net there doesn't seem to be much in it. >>> > Armadillo does generally requires a good BLAS library to get good >>> > performance whereas Eigen doesn't. Eigen has a richer API. Longer >>> > term, we could remove the uBLAS interface (which is slow) and >>> > implement Eigen as a linear algebra backend. >>> > >>> > Any opinions/experiences, or is anyone attached to Armadillo? >>> >>> No objections. >>> >>> -- >>> Anders >>> _______________________________________________ >>> fenics mailing list >>> [email protected] >>> http://fenicsproject.org/mailman/listinfo/fenics >> >> >> >> _______________________________________________ >> fenics mailing list >> [email protected] >> http://fenicsproject.org/mailman/listinfo/fenics >> > > > _______________________________________________ > fenics mailing list > [email protected] > http://fenicsproject.org/mailman/listinfo/fenics > _______________________________________________ fenics mailing list [email protected] http://fenicsproject.org/mailman/listinfo/fenics
