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

Add parallel write of atlas fields on the root processor #84

Merged
merged 6 commits into from
Mar 27, 2024

Conversation

twsearle
Copy link
Collaborator

@twsearle twsearle commented Mar 21, 2024

Description

Add parallel write of atlas fields for any partitioner. Data is written by the root processor only, with each processor sending its owned data to the root processor, where it is sorted before being written to the file. The ORCA logic is now abstracted out of the field writer to allow for the addition of non-orca grids. There is also some small refactoring to the reading classes to unify the naming and approaches and hopefully make things a little more clear.

Impact

This change ought to help with parallel 3DVar changes, when these are added by Dan Lea.

Checklist

  • I have updated the unit tests to cover the change
  • New functions are documented briefly via Doxygen comments in the code
  • I have linted my code using cpplint
  • I have run the unit tests
  • I have run mo-bundle to check integration with the rest of JEDI and run the unit tests under all environments

* update field writer tests
* add write server
* add single proc and parallel write server tests
* test ORCA indexing
* standardise OrcaIndex x and y dim names
* mpi safe assert, reduce OrcaIndex class
* reduce pre-allocation and better const correctness
@twsearle twsearle self-assigned this Mar 21, 2024
@twsearle twsearle requested a review from s-good March 21, 2024 17:52
@twsearle twsearle marked this pull request as ready for review March 21, 2024 17:52
Copy link
Collaborator

@s-good s-good left a comment

Choose a reason for hiding this comment

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

I left a few queries but it looks good, thanks.

@twsearle twsearle force-pushed the feature/parallel-write-server branch 2 times, most recently from da3c90d to 3792d07 Compare March 26, 2024 17:37
@twsearle twsearle force-pushed the feature/parallel-write-server branch from 3792d07 to a1b9681 Compare March 26, 2024 18:12
@twsearle
Copy link
Collaborator Author

I left a few queries but it looks good, thanks.

Thanks very much for the review! It exposed a few things I missed. I will re-run mo-bundle to double check everything is OK before merging, but if you would rather re-review please can you press the 🔄 button next to your name in the reviewer section and add a new review. Thanks again! I am looking forward to getting this through to make testing the shelf model interface more easily, and I am really hoping I can use a similar approach to gather data in the ReadServer if we need to improve io performance further.

@s-good s-good self-requested a review March 27, 2024 10:25
Copy link
Collaborator

@s-good s-good left a comment

Choose a reason for hiding this comment

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

The updates all look good, thanks.

@twsearle twsearle merged commit 01cf8be into develop Mar 27, 2024
2 checks passed
@twsearle twsearle deleted the feature/parallel-write-server branch August 1, 2024 08:10
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.

2 participants