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

Build standalone UPP via cmake #257

Merged
merged 6 commits into from
Jan 19, 2021

Conversation

WenMeng-NOAA
Copy link
Collaborator

@WenMeng-NOAA WenMeng-NOAA commented Jan 15, 2021

Add capacity of building standalone UPP via cmake and with all UPP dependency libraries from the hpc-stack on WCOSS-Dell, WCOSS-Cray, Hera, Orion and Jet. The build script is under tests/complile.sh. The GNC make capacity will be phased out in the future.
The changes include:

  • Add new cmake build script at tests/compile_upp.sh
  • Add module files cray-intel, hera, jet, orion and wcoss_dell_p3 from the hpc-stack
  • Rename UPP executable to upp.x
  • Update version number to 10.0.3

@WenMeng-NOAA WenMeng-NOAA linked an issue Jan 15, 2021 that may be closed by this pull request
Copy link
Contributor

@aerorahul aerorahul left a comment

Choose a reason for hiding this comment

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

some comments for your consideration.

tests/compile_upp.sh Outdated Show resolved Hide resolved
tests/compile_upp.sh Outdated Show resolved Hide resolved
rm -rf build install
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=../install -DBUILD_WITH_WRFIO=ON ../..
make -j12
Copy link
Contributor

Choose a reason for hiding this comment

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

12 is too many threads to compile in parallel. I am not sure UPP will benefit significantly from more than 4-6.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

@aerorahul Would you suggest the option "-j4" or no option? I actually don't know if this option has impact on UPP build performance or run performance.

Copy link
Contributor

Choose a reason for hiding this comment

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

4 should be enough. 12 is too much.
make -jN enables parallel compilation (as much as the code will allow).

tests/compile_upp.sh Outdated Show resolved Hide resolved
tests/compile_upp.sh Outdated Show resolved Hide resolved
tests/compile_upp.sh Show resolved Hide resolved
@WenMeng-NOAA
Copy link
Collaborator Author

@aerorahul The compile_upp.sh was updated based on your comments. Please review it. Thanks!

@WenMeng-NOAA
Copy link
Collaborator Author

The build tests were completed on WCOSS-Dell, WCOSS-Cray, Hera, Orion and Jet. The upp lib and executable were successfully generated.

Copy link
Contributor

@aerorahul aerorahul left a comment

Choose a reason for hiding this comment

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

Thanks @WenMeng-NOAA
This is very much improved.
In a later PR, I would suggest enabling a choice of a compiler as well as supporting a generic Linux and macOS.

@WenMeng-NOAA
Copy link
Collaborator Author

@aerorahul In a later PR, I would suggest enabling a choice of a compiler as well as supporting a generic Linux and macOS.
That would be great. Our UPP need more technical supports for improving code performance. Thanks!

@WenMeng-NOAA WenMeng-NOAA merged commit b267dd9 into NOAA-EMC:develop Jan 19, 2021
@WenMeng-NOAA WenMeng-NOAA linked an issue Jan 27, 2021 that may be closed by this pull request
@WenMeng-NOAA WenMeng-NOAA deleted the post_cmake_build branch June 9, 2021 14:46
EricJames-NOAA pushed a commit to EricJames-NOAA/UPP that referenced this pull request Dec 14, 2022
…OAA-EMC#257)

## DESCRIPTION OF CHANGES: 
As it currently exists, the generate_FV3SAR_wflow.sh script can fail in some non-obvious ways if the correct python environment is not available. This PR adds some checks at the beginning of this script for the required python version and python modules that are needed to successfully set up the regional workflow, so the script will immediately fail with a descriptive error message if the necessary python environment is not available.

The error messaging is still not ideal, as the structure of this script does not allow for a simple exit upon error and still outputs some spurious error messages, but this is an improvement over the previous behavior in the case of a bad python environment.

## TESTS CONDUCTED: 
Ran checks on Cheyenne, Jet, and Hera for the script's expected behavior. When the correct python environment was loaded, behavior did not change, as expected. When python versions or modules were insufficient, the script now fails immediately, and outputs a descriptive error message about the unmet requirement. 

Also ran the end-to-end workflow tests on Hera, there was no change in behavior.
EricJames-NOAA pushed a commit to EricJames-NOAA/UPP that referenced this pull request Dec 14, 2022
… larger ensemble size (NOAA-EMC#257)

* Changes for running EnKF more efficiently and fixing EnKF crashes for larger ensemble size

* Simplify  config.sh.RRFS_CONUS_3km

* Simplify  config.sh.RRFS_CONUS_13km
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.

Build UPP standalone executable via cmake Update the UPP with libraries from the hpc-stack
3 participants