← Back to team overview

dolfin team mailing list archive

Re: Generic meta-programming, faster than form compiler?

 

2009/3/23 Martin Sandve Alnæs <martinal@xxxxxxxxx>:
> What Kent said.
>
> But FFC is not only about speed. If you want to "beat" FFC,
> you must not only match the speed (which I'm sure is possible)
> but the usability at the same time. If you can do both with
> C++ templates, I'll be really impressed :)

What you mentioned is exactly the goal of MTL: the developers
demonstrated that not necessarily a trade-off must exists between
performance and generality, that is, the usability stemmed from
generic programming can be achieved without losing performance.

If simply switching to MTL4 backend gains efficiency in dolfin, I
wouldn't be surprised that implementing the rest of the FE pipeline in
meta-programming could beat code-generation.


-Ali

-Ali

>
> Martin
>
>
> On Mon, Mar 23, 2009 at 11:36 AM, Kent Andre <kent-and@xxxxxxxxx> wrote:
>>
>> The code that FFC produces is about as fast as light. It has been
>> documented in a number of papers.
>>
>> I don't think you should try to beat FFC with generic meta-programming.
>> Or you could do it but, but don't have to high expectations...
>>
>> Insertion into the matrix is currently the bottleneck. But FFC does
>> not have anything to do with this.
>>
>> Kent
>>
>>
>> On ma., 2009-03-23 at 10:11 +0000, A Navaei wrote:
>>> The success of MTL4 based on generic meta-programming, arises the
>>> question about re-visiting the efficiency of code-generation
>>> approaches, including FFC. Given that FEM can particularly benefit
>>> from major meta-programming characteristics, namely static
>>> polymorphism and loop unrolling, MTL4 demonstrates that the
>>> code-generation part can be much more efficiently replaced by inlining
>>> performed at compile-time.
>>>
>>> Without having a concrete meta-programming implementation, it may be
>>> impossible to predict how much performance one would gain compared to
>>> FFC. However, MTL4 has been reported to be many times faster than
>>> code-generation means such as ATLAS.
>>>
>>> Based on this, are there any specific benefits in FFC code-generation
>>> which may not be covered by meta-programming?
>>>
>>>
>>> -Ali
>>> _______________________________________________
>>> DOLFIN-dev mailing list
>>> DOLFIN-dev@xxxxxxxxxx
>>> http://www.fenics.org/mailman/listinfo/dolfin-dev
>>
>> _______________________________________________
>> DOLFIN-dev mailing list
>> DOLFIN-dev@xxxxxxxxxx
>> http://www.fenics.org/mailman/listinfo/dolfin-dev
>>
>


References