-
Notifications
You must be signed in to change notification settings - Fork 28
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
[LFRic] setval_random and setop_random do not work with redundant computation #2909
Comments
By kernels do you mean whenever I like the idea of refusing the redundant transformation calculation on
If we want to proceed in the way you suggest, then we would need to be careful as any project that imports the I could create a dual behaviour in which the |
Yes, I mean whenever it is invoked. If it is invoked and COMPUTE_ANNEXED_DOFS is True then we will get wrong answers. The only safe way to handle this is to abort - if someone were to (ill advisedly) start using |
I think that allowing PSyAd to generate the test harness standalone would be best. That would certainly be a lot easier to modify the build scripts that I have as well! @arporter Is this development planned for PSyclone 3.1.0 release? |
I'm afraid 3.1.0 is out of the door so this will be for the next release. Having thought about it, we could have an (internal) option to disable the As for generating the test harness only, you can always do |
As discussed in #2805,
setval_random
cannot correctly perform redundant computation because there's no way of computing what pseudo-random values would be assigned to dof locations by neighbouring processors. This limitation applies both to annexed and halo dofs and therefore means that we cannot haveCOMPUTE_ANNEXED_DOFS=True
in the configuration file.I propose to put a check for this into PSyclone which will cause it to stop if it encounters either of the named kernels and
COMPUTE_ANNEXED_DOFS
isTrue
. It will also refuse to apply the RedundantComputation transformation to loops containing these kernels.@TeranIvy and @DrTVockerodtMO, I presume these kernels are only used in the adjoint test harness? (They were never intended for rigorous scientific use.)
The text was updated successfully, but these errors were encountered: