-
Notifications
You must be signed in to change notification settings - Fork 162
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
Build workflow utilities with CMake. #264
Conversation
I cloned the feature/cmake branch on Hera and ran build_workflow_utils.sh without doing anything else. I got this error:
I noticed it didn't know the target (other build scripts source machine-setup.sh) so I first added "target=hera" to test and then tried adding a line to source machine-setup.sh. It got "hera" as the target either way but it still error:
I'm not experienced with cmake...am I missing something? Thanks! |
… compiled files. bugfix in build_workflow_utils.sh hack. nceplibs-ncio now creates the module ncio and not fv3gfs_ncio.
@KateFriedman-NOAA |
@aerorahul Thanks for the fix! I updated my clone of feature/cmake on Hera and all workflow util codes built, woohoo!
Question...why not on wcoss_dell_p3? Are we waiting for a library update there? |
I did not build on wcoss_dell_p3. I was lazy. But, it should build. |
@aerorahul Gotcha, I'll try the build on WCOSS-Dell and report any issues. I ran a cycle test overnight on Hera with feature/cmake. The gdasechgres job segfaulted: /scratch1/NCEPDEV/stmp4/Kate.Friedman/comrot/cmake/logs/2020090118/gdasechgres.log.1 I reran with module_base.hera using hpc-stack to test that but it segfaulted similarly: /scratch1/NCEPDEV/stmp4/Kate.Friedman/comrot/cmake/logs/2020090118/gdasechgres.log I see mention of module_ncio, do we need to load an additional module at runtime? Thanks! Also, there is some additional updating/cleanup/decommissioning work to be done on feature/cmake (e.g. remove unneeded build scripts). I had to do some updating to get the branch ready to run so I'll finish that and commit those updates. |
@KateFriedman-NOAA The cleanup/decommissioning should be done in a separate branch and not in |
@KateFriedman-NOAA |
…_nc.fd. When going from nemsio to netcdf, the linking of ip, sp and w3nco changed from _d to _4.
@KateFriedman-NOAA |
@aerorahul Thanks for the fix! I updated my clone on Hera, reran build_workflow_utils.sh and then rewound the failed gdasechgres job. The job completed successfully! /scratch1/NCEPDEV/stmp4/Kate.Friedman/comrot/cmake/logs/2020090118/gdasechgres.log I also ran the gdasechgres job in my feature/hpc-stack test (symlinked workflow execs to feature/cmake execs) and it also completed successfully: /scratch1/NCEPDEV/stmp4/Kate.Friedman/comrot/stacktest1/logs/2020090118/gdasechgres.log I am letting my cmake test on Hera continue forward another cycle. I want to run a cycle on both Orion and WCOSS-Dell, and repeat the test on Hera for a reproducibility check. I'll have a commit shortly to add workflow_utils to the build_all and linking scripts so it builds/links out of the box again. Further cleanup and decommissioning will happen in a follow-up PR. |
- add build_workflow_utils.sh to build_all.sh - add workflow utils exec symlinks to link_fv3gfs.sh since these execs no longer land in /exec folder - add workflow_utils build to partial_build.sh and fv3gfs_build.cfg for use by build_all - turn off builds in fv3gfs_build.cfg that are now covered by workflow_utils build - move machine-setup source in build_workflow_utils.sh before target is needed Further cleanup and decommissioning of consolidated builds will come in follow-up commit/PR. Refs: #264
- Add $target to build_workflow_utils.sh command in build_all.sh - Move machine-setup source back down into if-block in build_workflow_utils.sh Refs: #264
@aerorahul The analcalc jobs are failing in my test of feature/cmake on Hera. Can you take a look? Thanks! /scratch1/NCEPDEV/stmp4/Kate.Friedman/comrot/cmake/logs/2020090200/gdasanalcalc.log |
@WalterKolczynski-NOAA @KateFriedman-NOAA |
Will do |
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.
Did what I could to cross-check against existing makefiles/build scripts with my rudimentary knowledge of cmake and the library dependencies. I suspect most of my comments will be either covered by cmake picking up library dependencies or just inconsequential changes. It's also possible I missed a flag being set somewhere, though I tried to check both the build script and the makefile.
@WalterKolczynski-NOAA |
Sorry for the hold-up. I've resolved all the ones that are definitely taken care of. I will leave it to your discretion about what to do with the remainder and whether they are impactful or not. |
@WalterKolczynski-NOAA Thanks again for the careful review. |
@KateFriedman-NOAA Go ahead and merge if you are satisfied. |
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.
Thanks for cmake-ifying these codes @aerorahul ! Tested branch on Hera, Orion, and WCOSS-Dell. Ran fine. Duplicate run on Hera reproduced output.
Reran build_workflow_utils.sh on WCOSS-Dell, Hera, and Orion after commit at 1d7776d. Build ran fine. |
This PR enables the utilities under
sorc/
to be built usingcmake
. modulefiles forhera
,orion
andwcoss_dell_p3
are added that load hpc-stack.These workflow utilities were compiled on
hera
andorion
, but not onwcoss_dell_p3
These workflow utilities were compiled on
macOS
, EMC Linux box (RHEL7), Docker with GNU and IntelOneAPI containers.All utilities built as expected. They were not tested against the hand-written makefiles on the supported HPC's for reproducibility.
Minor changes in 3 Fortran source codes
syndat_qctropcy.fd/qctropcy.f
,gfs_bufr.fd/meteorg.f
, andfv3nc2nemsio.fd/fv3_main.f90
were required to get these utilities to be compiled with GNU Fortran.