Split generation of elements and forms
Jitting element classes separately from forms and reusing across forms will result in less compiled code overall, reducing disk cache size, reducing compilation time of forms, speeding up dolfin test suite which jits a lot of forms, memory usage in programs with many forms with the same elements, and world peace.
Here are some subtasks to get this working:
-
Use split header and implementation instead of combined templates for all classes in jit compiler.
-
Forms and elements with subelements depend on other classes, so when files are split up we need to add #include fooelement.h (or possibly just create_foo declarations) in generated implementation files.
-
Implement jitting of dofmap, finite_element, and coordinate_mapping classes separately without form, using element signature instead of number to create classname. Some kind of hash of repr(ufl_element) + possibly build options should be a good signature.
Comments (12)
-
reporter -
reporter - changed milestone to 1.7
-
reporter Possibly best to implement
https://bitbucket.org/fenics-project/ffc/issues/91/use-ctypes-to-load-jit-compiled-classes
before trying to jit classes separately with dependencies between them.
-
reporter Issue
#33was marked as a duplicate of this issue. -
reporter -
- removed milestone
Removing milestone: 1.7 (automated comment)
-
- changed status to resolved
-
Really? Is this resolved? Can you give a commit hash?
-
- changed status to open
Sorry, not resolved.
-
reporter -
assigned issue to
-
assigned issue to
-
reporter Almost works in my branches, but broke multimesh.
-
reporter - changed status to resolved
- Log in to comment
Issue
#32was marked as a duplicate of this issue.