Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Corbett/kernel specs #3273

Draft
wants to merge 16 commits into
base: develop
Choose a base branch
from
Draft

Corbett/kernel specs #3273

wants to merge 16 commits into from

Conversation

corbett5
Copy link
Contributor

@corbett5 corbett5 commented Aug 7, 2024

TODO: If the json file is modified CMake doesn't run again.

Not a fan of having to duplicate the function declarations again in the .cpp.template file. Many of the functions have very complicated declarations and the errors obtained from mistakes are sure to cause headaches. For me this was in physicsSolvers/fluidFlow/CompositionalMultiphaseHybridFVMKernels_impl.hpp. One alternative is to define explicit instantiation macros in this header so at least you don't have to update two different files. You'd still have to list out the function arguments twice unless we resorted to some more intrusive macros.

"( "<<( ( "\n " + LvArray::system::demangle( internal::typeIdWrapper( objects ).name() ) ) + ... )<<" \n)\n"
// <<
// "and the dispatch options are:\n"<<
// internal::listToString( combinations, "\n(", "\n)", typeListPrinter )
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because combinations has so many different types I have run into compiler bugs when trying to print it out. Luckily the stack trace here seems to work find and that contains the types.

Comment on lines +508 to +509
// using SUBREGION_TYPES = types::Slice< DISPATCH_TYPE_LIST >;
using SUBREGION_TYPES = types::TypeList< CellElementSubRegion >;
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a hack, but I am not sure how we want to do this. The types::Slice that I commented out will return a list of the first element from the list-of-lists DISPATCH_TYPE_LIST, but for what we have now this is just a list containing many copies of CellElementSubRegion. So many copies in fact that NVCC gives up in forElementSubRegions.

@@ -0,0 +1,512 @@
{
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rrsettgast do we need all these combinations?

@corbett5
Copy link
Contributor Author

@rrsettgast @wrtobin I think you guys should give this a look over. I commented a few of the pain points. It passes most of the integrated tests on ruby (except a few FPE runtime errors and restart checks I think are unrelated to this PR) and I have been unable to run them on Lassen.

All in all the compilation is still extremely slow. It takes almost two hours to compile on Lassen, most of which is spent linking.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants