Skip to content

New Stokhos ETI system that splits instantiations into multiple files and libraries

James Willenbring requested to merge etphipp:stokhos_split_eti into develop

Created by: etphipp

This is a complete rework of the Stokhos ETI system. It makes several changes:

  • Each scalar type instantiation is put into a separate file for compilation.
  • Each set of instantiations for a given package (Tpetra, MueLu, ...) for each scalar type is put into a separate library. This will keep the libraries much smaller to fix linker issues when the libraries get too big (related to issue #4502 (closed))
  • You can now set what ensemble sizes you want to instantiate with via the cmake option Stokhos_ETI_Ensemble_Sizes, e.g., -D Stokhos_ETI_Ensemble_Sizes="4,8,16,32"
  • By default only an ensemble size of 16 is used. This dramatically reduces the number of default instantiations, which will speed up build times and reduce library sizes.
  • ETI for MueLu in Stokhos now uses the same class list as the MueLu package, so they will no longer need to run a separate script for Stokhos when adding new classes.

This PR also includes some changes to get some MueLu files to compile that previously weren't being instantiated with Stokhos.

It also eliminates a lot of old files that aren't needed anymore, and cleans up some warnings.

@trilinos/muelu

Merge request reports