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

Port rrfs-workflow to Hercules #172

Merged
merged 12 commits into from
Dec 21, 2023

Conversation

guoqing-noaa
Copy link
Contributor

@guoqing-noaa guoqing-noaa commented Dec 20, 2023

DESCRIPTION OF CHANGES:

  • Port rrfs-workflow to Hercules

TESTS CONDUCTED:

  • On machines/platforms:
  • WCOSS2

  • Hera

  • Orion

  • Hercules

  • Jet

  • Test cases:

  • Non-DA engineering test
  • DA engineering test
  • Other sample scripts:
    ush/sample_configs/others/config.sh.RRFS_CONUS_3km. Period: 1 February 2022.

ISSUE:

CONTRIBUTORS (optional):

@chan-hoo @ShawnMurdzek-NOAA @JacobCarley-NOAA

@chan-hoo
Copy link
Contributor

@guoqing-noaa, thanks for this PR. I got the following error:

/usr/bin/env: ‘python’: No such file or directory

This is because python does not exist in /usr/bin/env. You can find a temporary solution for this here (aqm_dev):
ufs-community/ufs-srweather-app@6884fb0
I added a new file "checkout_externals_python3". If you have any better solution, you can do it :)
Hope someone opened a ticket for this to the hercules help desk.

@chan-hoo chan-hoo linked an issue Dec 20, 2023 that may be closed by this pull request
@JacobCarley-NOAA
Copy link

I believe @JamesAbeles-NOAA is also working on a Hercules port. I am including him here for awareness.

@JacobCarley-NOAA
Copy link

One more thing, the GSI Utils folks are also working on porting to Hercules and reported an MPI environment setting that is needed to be enabled to get things to run properly with netCDF4: export I_MPI_EXTRA_FILESYSTEM=ON. This was also reported by the ufs-weather-model folks. I wanted to bring this up here in case anyone was not aware.

@guoqing-noaa
Copy link
Contributor Author

guoqing-noaa commented Dec 20, 2023

@chan-hoo Right, this is because Hercules does not have a default Python env. Users can module load python before checking out sorc and/or do app_build.sh.

One way to solve this is to describe this in README.md.
Another way is to add one line in app_build.sh before checkout_externals:

python --version
if [[ $? -ne 0 ]]; then
   module load python
fi

The caveat of the second method is that it is only needed in Hercules.

Let me know which method you guys prefer. Thanks!

@guoqing-noaa
Copy link
Contributor Author

One more thing, the GSI Utils folks are also working on porting to Hercules and reported an MPI environment setting that is needed to be enabled to get things to run properly with netCDF4: export I_MPI_EXTRA_FILESYSTEM=ON. This was also reported by the ufs-weather-model folks. I wanted to bring this up here in case anyone was not aware.

Very important information! Thanks, @JacobCarley-NOAA! I have not run the DA engineering test yet. I will do it right now.

@guoqing-noaa
Copy link
Contributor Author

Another thing I'd like to mention is that I did not find the "yafyaml" library on Hercules. Currently, I commented it out in the Lua file. Do any scripts in rrfs-workflow use "yafyaml"?

@chan-hoo
Copy link
Contributor

@chan-hoo Right, this is because Hercules does not have a default Python env. Users can module load python before checking out sorc and/or do app_build.sh.

One way to solve this is to describe this in README.md. Another way is to add one line in app_build.sh before checkout_externals:

python --version
if [[ $? -ne 0 ]]; then
   module load python
fi

The caveat of the second method is that it is only needed in Hercules.

Let me know which method you guys prefer. Thanks!

Vote for the second one (app_build.sh) :)

@guoqing-noaa
Copy link
Contributor Author

guoqing-noaa commented Dec 20, 2023

Vote for the second one (app_build.sh) :)

Good. I will make this change as voted, :)

@chan-hoo
Copy link
Contributor

@guoqing-noaa, I got

 python: command not found

@guoqing-noaa
Copy link
Contributor Author

@guoqing-noaa, I got

 python: command not found

@chan-hoo This is expected on Hercules. Do you mean I need to suppress this error message? such as:
python --version 1>/dev/null 2>/dev/null

This error message will NOT stop the checkout process. However, Hercules has a performance issue today and now I cannot even do "ls". So it may look like "python not found" hangs the whole process just by reading the output message.

@chan-hoo
Copy link
Contributor

Got it. I'll try it again tomorrow.

@guoqing-noaa
Copy link
Contributor Author

@chan-hoo FYI, Hercules is back.

@chan-hoo
Copy link
Contributor

@guoqing-noaa, I am testing it now. So far so good. I'll let you know once it is done.

@chan-hoo
Copy link
Contributor

@guoqing-noaa, test was complete successfully. Approving. Happy Holidays! :)

@MatthewPyle-NOAA MatthewPyle-NOAA merged commit a7f60e8 into NOAA-EMC:dev-sci Dec 21, 2023
@MatthewPyle-NOAA
Copy link
Contributor

Thanks for testing and approving, @chan-hoo

@guoqing-noaa
Copy link
Contributor Author

Thanks, @chan-hoo @MatthewPyle-NOAA! Happy holidays!

@guoqing-noaa guoqing-noaa deleted the hercules branch September 5, 2024 05:13
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.

Port rrfs-workflow to Hercules
5 participants