← Back to team overview

dolfin team mailing list archive

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

 



A Navaei 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.


No, you have addressed meta-programming which is the generation of code. FFC does employ loop unrolling but it does not use static polymorphism. There is no fundamental reason why it could not also use static polymorphism (i.e. generate templated classes and functions).

MTL4 does do some very neat things, and the performance for a number of operations is very impressive. However, if you look at the code you will see that for relatively simple operations it, and uBLAS, are very sophisticated. Advocating such an approach for differential equations without a proof of concept does not demonstrate an appreciation of the complexity of differential equations and variational methods over basic linear algebra operations.

Garth




-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






Follow ups

References