-
Notifications
You must be signed in to change notification settings - Fork 9
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
Creating mega rdas.x to replace individual executables #95
Conversation
@SamuelDegelia-NOAA Thanks for working on this. Look forward to it. It is a good idea for everyone to create an issue for what he is working on or planning to work on to avoid duplicate efforts and facilitate discussions. |
Thank you for the suggestion, @guoqing-noaa. I mentioned that I would be working on this during some internal EMC meetings but it would be better to open an issue here on RDASApp so that all collaborators are aware. I will do that now. |
I think this PR is now good to go for review. I updated the main text with some new information. |
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.
One suggestion but otherwise this looks great!
@SamuelDegelia-NOAA I have two general comments. First, It is good to follow gdas to have a super executable to be ready when it is the solution to meet the nco requirement. But I don't think it is good to use now in rrfs scripts/ctests ( because, use of such a super executable only makes the readability/organization less clear). I would suggest this PR only include the changes for codes. Second, I believe, there would be similar situations in the future when rdas could borrow stuff from gdas and do rdas's own changes/modifications to them. If possible, I would suggest to explore "git subtree" to transfer those components from gdas to rdas. Doing so will not only keep a complete history of the codes but, also make rdas developer could use similar git "pull" command to incorporate new changes to the incorporated codes in GDAS. |
@TingLei-NOAA I feel like it is good to get developers used to using the Regarding the |
@SamuelDegelia-NOAA The key is that use of gdas.x or rdas.x is for compliance with current nco requirement (and not the only work-around). It is definitely not contributing to readability/maintainability ( of course, I would not argue how "significantly" it does on the other direction). If needed, changes in the scripts from the original jedi executables to the use of the super executable with corresponding extra parameters is only a text "finding/replacing" process and I don't think developers needs a time to be familiar with that. But, starting from such use of that super executable for developers to dig/understand jedi is to add an extra (and unnecessary) wrapping interface. Of course, that is my opinion. The decision would be made by rdasapp managing team. I just want to emphasize that the use of such a super executable is a decision/choice to be made by rdasapp community and not a logical following up after current gdas' example. |
@TingLei-NOAA I guess that adding this mega executable can make it harder to track down an issue with a specific application. For example, knowing that you should search for |
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.
looks good to me
ee89395
After some discussion today with @TingLei-NOAA and @ShunLiu-NOAA, I reverted the ctests and experiment scripts to use the original executables. Everything else with the PR is the same, but we only plan to use the mega executable once we move to the workflow and working on WCOSS. |
@SamuelDegelia-NOAA Thank you for the update. |
@hu5970 @guoqing-noaa please review Sam's modification. |
This PR creates two "mega" executables called
rdas_fv3jedi.x
andrdas_mpasjedi.x
. These larger executables combine many of the individual executables that previously only worked for a single application (i.e., variational, letkf, bump). This is needed for NCO compliance and generally follows GDASApp PR #1075.The choice to create separate executables for fv3jedi and mpasjedi will make it easier to simply remove one whenever we start real-time runs.
There are some differences for
rdas_${dycore}.x
fromgdas.x
including the new mpas-jedi version, removal of soca options, addition of bump option, and a slightly different build route viaRDASApp/bundle/CMakeLists.txt
.The mega executables have been tested on Hera for both fv3-jedi and mpas-jedi including the newly added bump option. I also updated the ctests and the template scripts
run_fv3jedi_template.sh
andrun_mpasjedi_template.sh
for this new executable structure. One thing I noticed is that some of the mpasjedi ctests initially failed due to a memory error. I am not sure what change could have caused this, but I added a--ntasks-per-node=18
option to the ctests to allow them to use 2 nodes instead of 1. After that, everything seems to be working as expected.Usage examples:
CTest results: