-
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
Add FortCL initialization options (issue #1019) #1032
Conversation
Codecov Report
@@ Coverage Diff @@
## master #1032 +/- ##
==========================================
- Coverage 98.70% 98.68% -0.02%
==========================================
Files 160 153 -7
Lines 31731 31305 -426
==========================================
- Hits 31319 30893 -426
Misses 412 412
Continue to review full report at Codecov.
|
…er when there is more than 1 device per node
28a66ff
to
c4ac594
Compare
@arporter Ready for first review |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good job Sergi. Just minor comments.
All tests pass, including compilation.
Ditto the examples.
Updated documentation builds fine.
I'll check for pylint/pycodestyle next time.
Please could you update the copyright date in any files you've touched.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Apart from the problem of the offset used in the example kernels, we're down to very minor things now.
All examples are OK, incl. with compilation.
All tests pass, incl. with compilation.
Updated user guide builds fine.
Ref guide builds without new warnings.
I've checked all files for conformance.
re. the kernel-offset issue, I realise I've lost sight of the root cause of this problem. Did you have to change the boundary conditions on the grid in order to solve an execution problem? As this is only an example, I don't think it's worth putting in lots of effort, we just need a simple solution (if there is one).
@arporter The reason for the changes are limitations on dl_esm_inf distributed memory. Both BC_PERIODIC and the GO_OFFSET_SW stop in the initialization step. I have now tried to just change to BC_EXTERNAL and comment out the dl_esm_inf lines in the offset_sw initialization:
This already solves the issue with this example, but I don't quite understand what 'gone through the coding' means here? Does it mean that it need proper tests to guarantee that it works? Ultimately I would like to solve the BC_PERIODIC as well because it is needed for the Shallow benchmark. Which in turn could be used as a test that everything works as expected. So the options we have is:
I can not assess how safe is 3 or how long would it take to do 4. So I will appreciate your input on this. |
I think option 2. is the best bet with a new PR in dl_esm_inf to develop/test that the necessary functionality works. "By gone through the code" I think I meant I haven't self-reviewed it to check it. If I was a betting man I would bet that it is probably not quite right. |
@arporter Ready for next review. |
Closes #1019
Adds OpenCL initialization options and updates the OpenCL documentation.
Unfortunately I couldn't see how to do the environment var solution described and preferred in #1019 because in this case the environment var string has to be converted into an integer, probably with the read statement which is not supported in f2pygen, so I went for the configuration file parameter.
It can be tested with the new
compile-mpi-ocl
in examples/gocean/example3 or in PSycloneBench