← Back to team overview

dolfin team mailing list archive

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

 

2009/3/23 Matthew Knepley <knepley@xxxxxxxxx>:
> On Mon, Mar 23, 2009 at 7:09 AM, A Navaei <axnavaei@xxxxxxxxxxxxxx> wrote:
>>
>> 2009/3/23 Garth N. Wells <gnw20@xxxxxxxxx>:
>> >
>> >
>> > 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.
>> >>
>> >
>> > What FFC and other code generators do is a form of metaprogramming, so I
>> > don't see what point you're trying to make.
>>
>> As mentioned above, we are talking about compile-time implicit inline
>> code generation which is opposed to explicit code generation as done
>> by FFC -- refer to MTL publications.
>
> I am going to agree with Garth here. There is no real difference. MTL4
> uses the template engine to generate code. FFC uses Python. However,
> both approaches only generate C++ code. They can be made equivalent
> for any given problem. I am fairly sure the MTL guys would agree. I know
> them very well.

If you want to have a runtime code-generator which implements the
features of compile-time template meta-programming one by one, such as
loop unrolling, and in this way effectively end up with an equivalent;
then the question is why re-inventing the wheel?

The compile-time has the benefit of avoiding double-compilation (lib +
jit) and implementing a code generator. Whether the above concepts are
the same or not, my original question is still unanswered: what's the
benefit of FFC runtime code-generation over compile-time template
meta-programming? Note that the form DSL can be still used with the
latter approach and it's not specific to FFC.


-Ali

>
>    Matt
>
>>
>> -Ali
>>
>> >
>> > Garth
>> >
>> >> 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
>
>
>
> --
> What most experimenters take for granted before they begin their experiments
> is infinitely more interesting than any results to which their experiments
> lead.
> -- Norbert Wiener
>


Follow ups

References