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

Reply via email to