public inbox for gsl-discuss@sourceware.org
 help / color / mirror / Atom feed
From: Gerard Jungman <jungman@lanl.gov>
To: GSL Discuss Mailing List <gsl-discuss@sourceware.org>
Subject: Re: simplicity vs. efficiency of algorithms in GSL
Date: Tue, 07 Oct 2008 21:14:00 -0000	[thread overview]
Message-ID: <1223413980.14338.96.camel@bellerophon.lanl.gov> (raw)
In-Reply-To: <9ACA4123-675A-43C1-9200-F0AABB076117@googlemail.com>


On Sat, 2008-09-27 at 08:10 +0200, Jochen Küpper wrote:
> 
> In C++ I am using mostly ODE solvers, linear algebra, local optimizers  
> (plus sf and const again, of course).
> It does bother me (and colleagues) a lot that neither the ODE solvers  
> nor the LA routines are really up to speed. My colleagues and myself  
> are really considering to abandon the GSL because we want better ODE  
> solvers and better eigenvalue/vector routines! And if the crucial  
> parts are not from GSL, why us it at all?

I agree. GSL needs to go to the next level, otherwise we're back
to cobbling parts together, and GSL becomes a frozen page in history.


> The name GNU Scientific Library implies it is meant for scientific  
> computing. Well, computational science (turned words around on  
> purpose), to a large extent, is solving large-to-big problems. Really  
> big problems probably have the resources to put together the best  
> algorithms for all their needs. For large problems that is often not  
> the case: We often implement the programs as a single person.

Exactly. A library should exist in order to make it possible for
one person to do the work needed to solve a large problem. That
is the target audience. Thank you for making this point very
clearly.


> There, we need the best libraries around. We like GSL, because it is  
> nicely documented and delivers routines for many (most) problems.  
> However, we are very much in need of getting improved algorithms!
> 
> For LA I would be very much in favor to have people (re)implement or  
> wrap fractions of LAPACK with a GSL-style interface. If there would be  
> a single nicely implemented routine, others would be easy to add.

We need an interface design. Maybe it's difficult, maybe not. I would
very much prefer that an expert created one for us. Somebody who has
used, or understands, all the parts of lapack.

Also, there is a danger that the thing we call lapack will shift
underneath us. Of course, the glob of code (on netlib for example)
will not change. But the underlying thing that you want to use may
change, as the "lapack" world moves forward. This means that there
has to be some rational approach to extending/updating the
interface design. Who will maintain this?

I was hoping that Dongarra et al. would create and maintain such
an interface. They have been promising this for some time. Does
anybody know what is happening with that?


> For ODE, for example, I am considering to test, and eventually switch  
> to, cvode (but I have not used it at all so far). I would be very  
> happy to not need to do this, but instead get improved ODE routines in  
> GSL and use my time for doing science!

I looked at CVODE many years ago. So I thought it was time to look
again, and to have a quick look at the the whole Sundials package,
which is new to me. Years ago, I thought the technical aspects were
good, but the design and packaging (and the code itself) were not
attractive. Also, it seemed to exist in one of these no-obvious-license
limbos. But it looks like they have made a lot of progress.
And it's an explicit BSD license now.

The main objection I had, those years ago, was the way CVODE
came with its own little linear algebra world. That is definitely
a design mistake, though you can see why they did it. That
still seems to be the case. I'm not sure how the end user can
use it as a research tool, if the linear algebra implementation
is essentially closed. (Of course you can always modify the
code, but that's not the point. The ability to modify should be
designed into the system, so you can replace/modify parts of
the machinery in a rational way, maybe through some kind of
framework design.) As a canned tool, it makes sense. But it
should be more than that.

However, it is possible that I do not understand the CVODE design.
For example, they claim that one of their goals was to allow users
to supply their own data structures. I'm not sure how that can
work.

I would enjoy hearing what anybody has to say about CVODE/Sundials.
Tell me why the design makes sense (or not).

Also, what is the right way to handle this dependency issue, which
occurs in GSL as well. ODE methods clearly rely on linear algebra,
so logically they should build on a foundational linear algebra
package. Having them carry their own implementations makes me
very queasy. Yet, we have no standard linear algebra interfaces
to program to.


> Please take this as a call that scientists need improved routines in a  
> GSL-quality and -breadth library.
> 
> I understand that this is a difficult problem, but that is what GSL  
> should aim at and what the FSF should support and push if they want a  
> scientific library!

Again, I agree. Unfortunately, I don't think there is any such thing
as "FSF support" or "push". As always, we're on our own. Just a handful
of people trying to make something better than what we had before.

GSL should definitely aim higher. But GSL is us... so what are
we going to do?

I have no personal love of computational linear algebra. But organizing
some linear algebra interfaces seems to be the number one problem
holding up our progress.


--
G. Jungman


  parent reply	other threads:[~2008-10-07 21:14 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <200809221621.54890.emanuele.passera@treuropa.com>
     [not found] ` <20080922162507.GA29877@hippogriff.homeunix.org>
2008-09-22 18:32   ` Tuomo Keskitalo
2008-09-22 19:48     ` Patrick Alken
2008-09-22 21:01       ` Robert G. Brown
2008-09-23 21:52         ` Gerard Jungman
2008-09-24 21:19           ` Brian Gough
2008-09-25  0:07             ` Gerard Jungman
2008-09-25  3:07               ` Andrew W. Steiner
2008-09-25  3:50               ` Z F
2008-09-26 21:48               ` Brian Gough
2008-09-27  6:12                 ` Jochen Küpper
2008-09-29 13:35                   ` Brian Gough
2008-10-07 21:14                   ` Gerard Jungman [this message]
2008-10-09 18:38                     ` Tuomo Keskitalo
2008-10-09 18:57                       ` Frank Reininghaus
2008-10-09 21:17                         ` Gerard Jungman
2008-10-10  0:05                       ` Gerard Jungman
2008-10-10 15:50                         ` Robert G. Brown
2008-10-10 18:47                           ` James Amundson
2008-10-11  2:48                         ` Brian Gough
2008-10-14 21:33                           ` Gerard Jungman
2008-10-14 22:41                             ` Daniel Franke
2008-10-16 22:20                               ` Gerard Jungman
2008-10-17 13:27                             ` Brian Gough

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1223413980.14338.96.camel@bellerophon.lanl.gov \
    --to=jungman@lanl.gov \
    --cc=gsl-discuss@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).