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

are there unit test we can run after installing, can unit testing better support UFS? #292

Open
edwardhartnett opened this issue Oct 7, 2024 · 4 comments

Comments

@edwardhartnett
Copy link

We are installing GOCART as part of the UFS.

There is some problem between GOCART, MAPL, and ESMF versions which is giving our code the heebee-jeebees.

Are there GOCART unit tests we can run to confirm that we installed correctly, and that GOCART is finding and correctly using MAPL and ESMF?

@mathomp4
Copy link
Member

mathomp4 commented Oct 7, 2024

I do not believe there are any beyond a GEOS run itself. I'll ping @tclune as maybe he's had thoughts about what could possibly be done in GOCART in re pFUnit or other tests.

GOCART2G can be built by itself and our CI still does this, though for us it's sort of a byproduct of the days we were converting from GOCART1 to GOCART2 (and thus wanted a way to build just GOCART).

That said, if the CMake install step works, it must have installed correctly. I suppose finding MAPL and ESMF, one could parse the CMake output:

-- Found ESMF: /baselibs/v7.25.0/intel_2024.2-intelmpi_2021.13/Linux/lib/libesmf.so (found version "8.6.1")
...
-- [MAPL] (2.47.1) [98273b3]

though that is with the MAPL-from-mepo. I'm not sure what CMake spits out for MAPL-from-Spack

@tclune
Copy link
Contributor

tclune commented Oct 7, 2024

@amdasilva has in the past mentioned some standalone tests for GOCART. I have not seen them, nor do I know how documented they are. If Arlindo is to be believed they are "in the repository" but may have been left behind on the CVS to Git transition.

I will try to ask Arlindo about them tomorrow.

@tclune
Copy link
Contributor

tclune commented Oct 7, 2024

When @bena-nasa returns from vacation (~Oct 21) He might be able to rig up something with our ExtData driver that would exercise MAPL + ESMF + GOCART.

@edwardhartnett
Copy link
Author

From @amdasilva 👍
Ed,

Nice to hear from you! The UFS team is lucky to have you, I am sorry NetCDF lost such a key developer. I am forwarding this to my colleague Tom “Unit Test” Clune…

Of course, we have had several debates about testing (read: making sure we coded what we intended to) and validation (read: making sure our intentions lead to a meaningful model.)

Our CI process makes sure it all builds and links with GEOS, not UFS at the moment. It may also test for reproducibility with different # of PETs and layouts. No PR goes forward unless these sanity tests are satisfied.

In our concept of testing there are 2 levels:

Component level testing where IMPORTS come from files and produces output with EXPORTS which is then compared to some reference. (I am assuming you are familiar with ESMF parlance)
System level test, in which the full system is run; only GEOS for now. Useful for zero-diff verification, but something that straddles the validation camp once you introduce science changes. Verifying zero-diff at a component level not always guarantee zero-diff at system level.

I will let Tom and Matt elaborate further on the status of the testing infrastructure in GEOS.

Reproducing some of our testing infrastructure for the UFS would require that you guys contribute it. In particular for the NUOPC layers that we do not use.

 Arlindo

Currently we are having issues with GOCART and MAPL. (See NOAA-EMC/WCOSS2-requests#5). We would like to add tests to GOCART which try to catch the problem we are having. @lipan @DusanJovic-NOAA @junwang-noaa

Can we run your tests after we install?

@edwardhartnett edwardhartnett changed the title are there unit test we can run after installing? are there unit test we can run after installing, can unit testing better support UFS? Oct 15, 2024
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

No branches or pull requests

3 participants