Skip to content

Conversation

@arporter
Copy link
Member

@arporter arporter commented Oct 13, 2021

  • Original (serial) benchmark
  • OpenACC version of original
  • OpenMP version of original
  • Compute moved to subroutine
  • OpenACC version of compute-in-subroutine
  • SIR-compliant Fortran version
  • OpenACC added to SIR-compliant Fortran

@arporter arporter self-assigned this Oct 13, 2021
@arporter
Copy link
Member Author

OpenMP version runs on my desktop but doesn't show any performance benefit. However, OMP is not in the ESIWACE2 deliverable so I'm going to park that for now.

@arporter
Copy link
Member Author

I need to add a checksum output to ease verification.

@arporter
Copy link
Member Author

Now have version with compute moved to subroutine working on GPU. However, can see that we get managed-memory traffic at the start of each compute region:

image

I think this must be because a lot of the work arrays are done as automatic arrays and thus are re-allocated on the GPU each time the subroutine is called.

@arporter
Copy link
Member Author

Made the automatic arrays into module-scoped allocatables that are allocated just once:

image

@arporter
Copy link
Member Author

Presumably @rupertford, this solution won't work for SIR because I now have an allocate in the compute routine itself? I could move it out to an init method for the module?

@rupertford
Copy link
Collaborator

Presumably @rupertford, this solution won't work for SIR because I now have an allocate in the compute routine itself? I could move it out to an init method for the module?

I'm not actually sure. It may be OK as you can specify data as being local in the SIR which presumably means scoped within the code generated by SIR. But I've not looked at what gets generated.

Copy link
Collaborator

@rupertford rupertford left a comment

Choose a reason for hiding this comment

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

Looks great. Just a few comments inline.

@arporter
Copy link
Member Author

arporter commented Feb 3, 2022

Ready for another look from @rupertford now.

Copy link
Collaborator

@rupertford rupertford left a comment

Choose a reason for hiding this comment

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

Just a couple of docstrings that have not been updated. Please see inline.

@arporter
Copy link
Member Author

arporter commented Feb 9, 2022

OK, this should be ready to go now.

Copy link
Collaborator

@rupertford rupertford left a comment

Choose a reason for hiding this comment

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

All good now.

@rupertford rupertford merged commit efc14bc into master Feb 9, 2022
@rupertford rupertford deleted the 75_tracer_advection branch February 9, 2022 22:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants