Inquiry about Computing/Eigen GSoC project

classic Classic list List threaded Threaded
4 messages Options
Stephen McCracken Stephen McCracken
Reply | Threaded
Open this post in threaded view
|

Inquiry about Computing/Eigen GSoC project

Hello SciLab folks,

Your GSoC ideas page proposes a project to "provide a version of Scilab based on Eigen".  Can you provide some additional details about that?  Which parts of the Scilab code base would Eigen replace, and what would the possible benefits be?

Thanks,
--Stephen


sylvestre sylvestre
Reply | Threaded
Open this post in threaded view
|

Re: Inquiry about Computing/Eigen GSoC project

Hello Stephen,

Le vendredi 19 mars 2010 à 23:07 -0600, Stephen McCracken a écrit :
> Hello SciLab folks,
>
> Your GSoC ideas page proposes a project to "provide a version of Scilab based on Eigen".  Can you provide some additional details about that?  Which parts of the Scilab code base would Eigen replace, and what would the possible benefits be?
This idea is to replace the underlying linear algebra library which are
BLAS/LAPACK by Eigen.
I wrote this quick page describing this:
http://wiki.scilab.org/Contributor_-_Eigen
Don't hesitate if you need anything on this page.

To tell you the truth, since I have no idea of the performance gain on
this library, a proposal about this subject should have some proof of
concept.

Sylvestre

--
-------------------------
Sylvestre Ledru
-------------------------
The Scilab Consortium
Digiteo
Domaine de Voluceau
Rocquencourt - B.P. 105
78153 Le Chesnay Cedex
France


Gael Guennebaud Gael Guennebaud
Reply | Threaded
Open this post in threaded view
|

Re: Inquiry about Computing/Eigen GSoC project


Hello everybody,

I'm a core developer of Eigen and I'm obviously quite excited that you are
looking at our library. I don't know anything about scilab internals, but I
still would like to emphasize some key unique features of Eigen which could be
very interesting for a project like scilab.

The main one is probably the fact that Eigen is 100% template code and that
(almost) everything that BLAS/LAPACK propose has been (re)implemented in an
efficient manner.  As a consequence you can very easily write clean generic
and efficient code working for all kind of scalar types. Supporting a new
scalar type in Eigen is a matter of a very few lines of code.

For instance, if scilab was based on Eigen, fully supporting MPFR / GMP would
be straightforward (at least for the low level aspects).

Other advantages include the nice C++ API and the license (LGPL).

Now regarding the pure performance aspect, I have to acknowledge that we'll
probably never completely beat GotoBlas or MKL, but we are very very close to
them. If being able to still use such non free libraries is a concern, this is
something that can be very easily integrated inside Eigen itself. Indeed,
Eigen's internal optimized routines for matrix products mimic the respective
BLAS one.

I don't want to annoy you more, so I'm stopping here.

Of course if someone picks this GSOC project I'll be happy to help on the
Eigen side.

Cheers,
Gael

--
Gaël Guennebaud
Iparla - INRIA Bordeaux


On Saturday 20 March 2010 09:33:24 you wrote:

> Hello Stephen,
>
> Le vendredi 19 mars 2010 à 23:07 -0600, Stephen McCracken a écrit :
> > Hello SciLab folks,
> >
> > Your GSoC ideas page proposes a project to "provide a version of Scilab
> > based on Eigen".  Can you provide some additional details about that?
> > Which parts of the Scilab code base would Eigen replace, and what would
> > the possible benefits be?
>
> This idea is to replace the underlying linear algebra library which are
> BLAS/LAPACK by Eigen.
> I wrote this quick page describing this:
> http://wiki.scilab.org/Contributor_-_Eigen
> Don't hesitate if you need anything on this page.
>
> To tell you the truth, since I have no idea of the performance gain on
> this library, a proposal about this subject should have some proof of
> concept.
>
> Sylvestre



sylvestre sylvestre
Reply | Threaded
Open this post in threaded view
|

Re: Inquiry about Computing/Eigen GSoC project

Bonjour Gael,

Your email is very appreciated. It would be great if we could find a
good student to work on this.

To tell you the truth, this is a prospective project. Some Google summer
of code projects will produce a finalized and documented project. Here,
I see this project to evaluate the pros/cons of Eigen has a numerical
library. It is clear that the nice syntax is a great advantage.
(BLAS/LAPACK were what 80' had best to offer).

But if the performances are good enough and it simplifies the code and
maintenance, we could switch... Especially if we find a solution to
switch between an Eigen backend and a BLAS/LAPACK one.

Thanks for the proposal of help. If we have a student who proposes this
subject, I will invite you to co-mentor the project (at least to see the
proposal).

Sylvestre
PS: if you have a look to the Scilab's internal, please have a look on
the YaSp branch. It is a reimplementation of the Scilab Kernel (C++
also ;)


Le mercredi 24 mars 2010 à 19:05 +0100, Gael Guennebaud a écrit :

> Hello everybody,
>
> I'm a core developer of Eigen and I'm obviously quite excited that you are
> looking at our library. I don't know anything about scilab internals, but I
> still would like to emphasize some key unique features of Eigen which could be
> very interesting for a project like scilab.
>
> The main one is probably the fact that Eigen is 100% template code and that
> (almost) everything that BLAS/LAPACK propose has been (re)implemented in an
> efficient manner.  As a consequence you can very easily write clean generic
> and efficient code working for all kind of scalar types. Supporting a new
> scalar type in Eigen is a matter of a very few lines of code.
>
> For instance, if scilab was based on Eigen, fully supporting MPFR / GMP would
> be straightforward (at least for the low level aspects).
>
> Other advantages include the nice C++ API and the license (LGPL).
>
> Now regarding the pure performance aspect, I have to acknowledge that we'll
> probably never completely beat GotoBlas or MKL, but we are very very close to
> them. If being able to still use such non free libraries is a concern, this is
> something that can be very easily integrated inside Eigen itself. Indeed,
> Eigen's internal optimized routines for matrix products mimic the respective
> BLAS one.
>
> I don't want to annoy you more, so I'm stopping here.
>
> Of course if someone picks this GSOC project I'll be happy to help on the
> Eigen side.
>
> Cheers,
> Gael
>

--
-------------------------
Sylvestre Ledru
-------------------------
The Scilab Consortium
Digiteo
Domaine de Voluceau
Rocquencourt - B.P. 105
78153 Le Chesnay Cedex
France