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

Enable building and testing Omega in single precision #147

Open
wants to merge 12 commits into
base: develop
Choose a base branch
from

Conversation

mwarusz
Copy link
Member

@mwarusz mwarusz commented Oct 16, 2024

This PR enables configuring Omega to use single precision and adds a test (reusing the tendency terms test) checking that we can build and run in single precision. The main changes are:

  • Changing R8 to Real where appropriate
  • Reading mesh and state arrays into temporary R8 arrays before storing them into the class members
  • Always using R8 buffers for halo exchanges
  • CMake logic to build the single precision library when needed

The halo buffers change is not optimal for performance in single precision. It would need to be optimized if we decide
to pursue this option seriously in the future.

Checklist

  • Documentation:
    • User's Guide has been updated
    • Developer's Guide has been updated
    • Documentation has been built locally and changes look as expected
  • Testing
    • CTest unit tests for new features have been added per the approved design.
    • Unit tests have passed. Please provide a relevant CDash build entry for verification.

@mark-petersen mark-petersen changed the title Enable builing and testing Omega in single precision Enable building and testing Omega in single precision Oct 21, 2024
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.

1 participant