2009/3/23 Matthew Knepley <[email protected]>: > On Mon, Mar 23, 2009 at 7:09 AM, A Navaei <[email protected]> wrote: >> >> 2009/3/23 Garth N. Wells <[email protected]>: >> > >> > >> > 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 >> >> [email protected] >> >> http://www.fenics.org/mailman/listinfo/dolfin-dev >> > >> > >> > >> _______________________________________________ >> DOLFIN-dev mailing list >> [email protected] >> 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 > _______________________________________________ DOLFIN-dev mailing list [email protected] http://www.fenics.org/mailman/listinfo/dolfin-dev
