[saga-rg] Task model...
Hartmut Kaiser
hkaiser at cct.lsu.edu
Fri Nov 4 07:40:29 CST 2005
Tom Goodale wrote:
> >>>>> It is not really much more readable than 4a1.
> >>>>> Therefore, I'm uncertain if it is worth fragmenting our
> approach
> >>>>> to bindings in different languages when there is not a clear
> >>>>> benefit in terms of readability or implementation complexity.
> >>>>
> >>>> I think that 4a2/4a3 actually allow nicer implementations, as it
> >>>> allows to have the different async parts somewhat
> separate from the
> >>>> sync parts. We think its nicer :-)
> >>>
> >>> 4a3 the only implementation in a C++ like manner I can think of,
> >>> which provides:
> >>> - an interface which conforms to modern C++ concepts
> >>> pushed by Boost et.al.
> >>> - it avoids not needed overhead if some of the features
> >>> are not needed/used (this gets optimised away by any
> >>> decent C++ compiler)
> >>
> >> Well, if the compiler can actually take advantage of that
> syntactical
> >> convention to apply more efficient optimizations, then that is a
> >> clear advantage to that approach (whether or not I find the syntax
> >> obscure).
> >
> > _S_AGA. If it is obscure to you or others, its not a good choice.
> > Performance is a second order issue. However, as I
>
> Also, we have not used templates anywhere else in the
> abstract API, so I think it would be a bad idea to move that
> way now. This does not preclude the C++ language binding
> using such if there is a clear benefit.
I agree here. There was a bit of misunderstanding from my side. You were
talking about the the SAGA spec but I was talking about the C++ language
binding. Could we find a way of doing both, describing a more or less
general interface in the spec and giving some freedom of implementation to
the language bindings?
> On a practical note, templates are one of the least portable
> features of
> C++, especially in libraries (except template libraries), and I would
> strongly urge that we do not use them for SAGA.
We will probably end up writing a C language binding for the affected
architectures in the end anyway... But let's first solve the problem for the
99% of the architectures where your concern is a no-issue. It's a matter of
how much time is required to do the C++ implementation in the end. And using
templates will give a speedup to this for sure.
Regards Hartmut
More information about the saga-rg
mailing list