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

Update to use project configs from NCEPLIBS #118

Merged
merged 35 commits into from
Sep 14, 2020
Merged

Update to use project configs from NCEPLIBS #118

merged 35 commits into from
Sep 14, 2020

Conversation

aerorahul
Copy link
Contributor

@aerorahul aerorahul commented Jun 17, 2020

NCEPLIBS is updated to provide a project-config file with its cmake build.
This PR uses imported targets from these NCEPLIBS builds across all of the UFS_UTILS applications.

The branch feature/cmakepkgs was built with a fresh clone and build of all develop branches of NCEPLIBS-* using the umbrella build in NCEPLIBS PR #76

Change-Id: I8e7526ef1b796c3653f06d83d65ccc1d4df2483e
Change-Id: I20a151f91202f78f4b125b6d3b99c8950c265ce7
Change-Id: I332a52f9a1ae79bfa5f05e8565b487f2672f5c7d
Copy link
Collaborator

@GeorgeGayno-NOAA GeorgeGayno-NOAA left a comment

Choose a reason for hiding this comment

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

I will test your branch on all officially supported machines.

@DusanJovic-NOAA
Copy link
Contributor

Compiled it successfully on my Ubuntu 20.04 (gcc 9.3.0) laptop.

CMakeLists.txt Outdated Show resolved Hide resolved
@GeorgeGayno-NOAA
Copy link
Collaborator

I will test your branch on all officially supported machines.

I can't compile it on Hera. It can find "Findgfsio.cmake". There are other package files missing as well.

@kgerheiser
Copy link
Contributor

kgerheiser commented Jun 17, 2020

It can't find Findgfsio.cmake? It shouldn't be looking for those, it should be looking for gfsio-config.cmake

@GeorgeGayno-NOAA
Copy link
Collaborator

It can't find Findgfsio.cmake? It shouldn't be looking for those, it should be looking for -config.cmake

Here is the entire message:

By not providing "Findgfsio.cmake" in CMAKE_MODULE_PATH this project has
 asked CMake to find a package configuration file provided by "gfsio", but
 CMake did not find one.

 Could not find a package configuration file provided by "gfsio" with any of
 the following names:

   gfsioConfig.cmake
   gfsio-config.cmake

@kgerheiser
Copy link
Contributor

kgerheiser commented Jun 17, 2020

Oh, well, that's better. Does gfsio-config.cmake exist on your CMAKE_PREFIX_PATH or <package>_ROOT? It would be under lib/cmake/<package>/<package>-config.cmake

@aerorahul
Copy link
Contributor Author

It can't find Findgfsio.cmake? It shouldn't be looking for those, it should be looking for -config.cmake

Here is the entire message:

By not providing "Findgfsio.cmake" in CMAKE_MODULE_PATH this project has
 asked CMake to find a package configuration file provided by "gfsio", but
 CMake did not find one.

 Could not find a package configuration file provided by "gfsio" with any of
 the following names:

   gfsioConfig.cmake
   gfsio-config.cmake

@GeorgeGayno-NOAA
Did you first build and install the NCEPLIBS-*?
If you did it in an single installation directory, we should be passing -DCMAKE_PREFIX_PATH=/path/to/nceplibs/install.

@kgerheiser We need a better way to test this combination of NCEPLIBS-* and UFS_UTILS, EMC_post.

@kgerheiser
Copy link
Contributor

Update the NCEPLIBS repo and have the entire thing install?

@aerorahul
Copy link
Contributor Author

Update the NCEPLIBS repo and have the entire thing install?

@aerorahul aerorahul closed this Jun 17, 2020
@GeorgeGayno-NOAA
Copy link
Collaborator

It can't find Findgfsio.cmake? It shouldn't be looking for those, it should be looking for -config.cmake

Here is the entire message:
By not providing "Findgfsio.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "gfsio", but
CMake did not find one.

Could not find a package configuration file provided by "gfsio" with any of
the following names:

gfsioConfig.cmake
gfsio-config.cmake

@GeorgeGayno-NOAA
Did you first build and install the NCEPLIBS-*?
If you did it in an single installation directory, we should be passing -DCMAKE_PREFIX_PATH=/path/to/nceplibs/install.

I did not build NCEPLIBS. I am trying to use the "official" NCEPLIBS on Hera, just as I always do.

@kgerheiser We need a better way to test this combination of NCEPLIBS-* and UFS_UTILS, EMC_post.

@aerorahul aerorahul reopened this Jun 17, 2020
@kgerheiser
Copy link
Contributor

Building with the new CMake won't work with existing modules or libraries not also built with these changes.

@aerorahul
Copy link
Contributor Author

It can't find Findgfsio.cmake? It shouldn't be looking for those, it should be looking for -config.cmake
Here is the entire message:
By not providing "Findgfsio.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "gfsio", but
CMake did not find one.
Could not find a package configuration file provided by "gfsio" with any of
the following names:
gfsioConfig.cmake
gfsio-config.cmake
@GeorgeGayno-NOAA
Did you first build and install the NCEPLIBS-*?
If you did it in an single installation directory, we should be passing -DCMAKE_PREFIX_PATH=/path/to/nceplibs/install.

I did not build NCEPLIBS. I am trying to use the "official" NCEPLIBS on Hera, just as I always do.

@kgerheiser We need a better way to test this combination of NCEPLIBS-* and UFS_UTILS, EMC_post.

@GeorgeGayno-NOAA That makes sense. This PR uses the imported targets from the NCEPLIBS project-config files. The "official" NCEPLIBS don't provide that information.

We may wait on the NCEPLIBS team to install the NCEPLIBS. They should be identical in terms of the library. The only addition is a name-spaced imported target that CMake creates for us and transitive dependency.

…ved in nceplibs. cleaned up nemsio utilities dependency list
@Hang-Lei-NOAA
Copy link

Hang-Lei-NOAA commented Sep 10, 2020 via email

@climbfuji
Copy link
Contributor

Yes, as Kyle said. openmp is also required by the operational use. Hang

Ok, I'll do the jet install again, this time for NCEPLIBS-external release/public-v2 + NCEPLIBS develop with OpenMP on. Will let you know when it is done.

@Hang-Lei-NOAA
Copy link

Hang-Lei-NOAA commented Sep 10, 2020 via email

@climbfuji
Copy link
Contributor

Yes, as Kyle said. openmp is also required by the operational use. Hang

Ok, I'll do the jet install again, this time for NCEPLIBS-external release/public-v2 + NCEPLIBS develop with OpenMP on. Will let you know when it is done.

I have this combination ready, but it lacks the modulefiles for the thirdparty (external libraries). I will add this functionality later for a beta02 version.

module purge
module load intel/18.0.5.274
module load impi/2018.4.274
module load netcdf/4.7.0
module load cmake/3.16.1

export CC=icc
export FC=ifort
export CXX=icpc
export ESMFMKFILE=/lfs4/HFIP/hfv3gfs/software/NCEPLIBS-ufs-v2.0.0beta01/intel-18.0.5.274/impi-2018.4.274/lib64/esmf.mk

module use /lfs4/HFIP/hfv3gfs/software/NCEPLIBS-ufs-v2.0.0beta01/intel-18.0.5.274/impi-2018.4.274/modules
module av

Note that the modules (in particular) netCDF for release/public-v2 are different from the "develop" versions, because we don't need to build netCDF ourselves (no parallel netCDF in SRW App 1.0).

If this works for UFS_UTILS, then I will add the missing modulefile creating for NCEPLIBS-external, do a few additional updates not yet included in the release/public-v2 branch on GitHub, and forward NCEPLIBS release/public-v2 to the tag v1.2.0.

@kgerheiser
Copy link
Contributor

kgerheiser commented Sep 10, 2020

I updated build.jet to point to Dom's new build

@kgerheiser
Copy link
Contributor

I believe my regression tests passed on Jet with the current build

@GeorgeGayno-NOAA
Copy link
Collaborator

I believe my regression tests passed on Jet with the current build

I just tried cbd3a43 on Jet. My tests passed as well.

Two more machines to go: WCOSS-Cray and Dell. They should be back in service today.

@GeorgeGayno-NOAA
Copy link
Collaborator

Trying to compile cbd3a43 on Surge. It can't find the gfsio library. I think the base path in the gfsio module is wrong. The gfsio module on Luna looks correct. @Hang-Lei-NOAA can you please check.

@Hang-Lei-NOAA
Copy link

Hang-Lei-NOAA commented Sep 11, 2020 via email

@Hang-Lei-NOAA
Copy link

Hang-Lei-NOAA commented Sep 11, 2020 via email

@GeorgeGayno-NOAA
Copy link
Collaborator

Hi, George Please module use /usrx/local/nceplibs/NCEPLIBS/cmake/install/NCEPLIBS-v1.2.0/modules module load gfsio/1.4.1 This is rsyn from Luna to ensure identical. Please test. Thanks, Hang On Fri, Sep 11, 2020 at 11:16 AM Hang Lei - NOAA Affiliate < hang.lei@noaa.gov> wrote:

I will check it. Thanks, Hang On Fri, Sep 11, 2020 at 11:15 AM GeorgeGayno-NOAA < @.***> wrote: > Trying to compile cbd3a43 > <cbd3a43> > on Surge. It can't find the gfsio library. I think the base path in the > gfsio module is wrong. The gfsio module on Luna looks correct. > @Hang-Lei-NOAA https://github.com/Hang-Lei-NOAA can you please check. > > — > You are receiving this because you were mentioned. > Reply to this email directly, view it on GitHub > <#118 (comment)>, > or unsubscribe > https://github.com/notifications/unsubscribe-auth/AKWSMFEIVISVYG4JZY53ZG3SFI5H5ANCNFSM4OAFR52A > . >

Thanks, can you also check Venus (/usrx/local/nceplibs/dev/NCEPLIBS/cmake/install/NCEPLIBS-v1.2.0). I see the libraries. But I don't see any module files. Thanks.

@GeorgeGayno-NOAA
Copy link
Collaborator

Just tested c649d9c on WCOSS-Cray. Everything built and all regression tests and utility scripts ran correctly.

One more machine to go: WCOSS-Dell.

@Hang-Lei-NOAA
Copy link

Hang-Lei-NOAA commented Sep 11, 2020 via email

@GeorgeGayno-NOAA
Copy link
Collaborator

Just tested 7e72c57 on WCOSS-Dell. Everything built OK. All regression tests and utility scripts ran fine.

The branch was successfully tested on Jet, Hera, Orion, WCOSS-Cray and WCOSS-Dell. Will merge this afternoon. Yeah!

@climbfuji
Copy link
Contributor

For my limited understanding. Is this branch also required for the SRW App, or are the changes for SRW coming later?

@kgerheiser
Copy link
Contributor

Both, this branch and then the other PR also.

@climbfuji
Copy link
Contributor

Both, this branch and then the other PR also.

Ok, thanks for letting me know. Are the NCEPLIBS finalized? In other words, are all the changes required for UFS_UTILS ready in NCEPLIBS? If so, I will test that version with the ufs-weather-model to make sure it doesn't change the answer (it shouldn't, the differences I saw last week came from ESMF) and update the NCEPLIBS release/public-v2 branch to match the current hash of develop.

@kgerheiser
Copy link
Contributor

NCEPLIBS is ready to go

@Hang-Lei-NOAA
Copy link

Hang-Lei-NOAA commented Sep 14, 2020 via email

Copy link
Collaborator

@GeorgeGayno-NOAA GeorgeGayno-NOAA left a comment

Choose a reason for hiding this comment

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

Branch was successfully tested on Jet, Hera, Orion, WCOSS-Cray and WCOSS-Dell. Will merge.

@GeorgeGayno-NOAA GeorgeGayno-NOAA merged commit 8404a4d into ufs-community:develop Sep 14, 2020
@aerorahul aerorahul deleted the feature/cmakepkgs branch September 14, 2020 20:32
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.

7 participants