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 ufs-weather-model to acorn (WCOSS2 TDS) #291

Closed
wants to merge 6 commits into from

Conversation

DusanJovic-NOAA
Copy link
Collaborator

@DusanJovic-NOAA DusanJovic-NOAA commented Nov 20, 2020

Description

Porting ufs-weather-model to acorn, WCOSS2 TDS. WCOSS2 is not using Intel CPU, so using -xCORE-AVX2 compile flag creates executable that can not run on non-intel cpus. That flag is replaced by -march=core-avx2

Issue(s) addressed

Testing

I ran one test (fv3_ccpp_control) manually on acorn. Input data for full regression tests are not yet available. This system has only 32 compute nodes, I'm not sure if we can run all tests using only 32 nodes.
Full test will be performed on all Tier-1 platforms. No changes in the baselines on Tier-1 platforms.

Dependencies

N/A

@DusanJovic-NOAA DusanJovic-NOAA marked this pull request as draft November 20, 2020 13:16
@DusanJovic-NOAA DusanJovic-NOAA changed the title Port ufs-weather-mode to acorn (WCOSS2 TDS) Port ufs-weather-model to acorn (WCOSS2 TDS) Nov 20, 2020
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 on the unsavory use of MPI debug linkages

setenv CMAKE_CXX_COMPILER CC
setenv CMAKE_Fortran_COMPILER ftn
setenv CMAKE_Platform wcoss2

Copy link
Contributor

Choose a reason for hiding this comment

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

One could just add I_MPI_LINK environment variable in the debug modulefile and eliminate the hard-wired compile time flags.

@@ -0,0 +1,3 @@
set(INLINE_POST ON CACHE BOOL "Enable inline post" FORCE)
set(PARALLEL_NETCDF ON CACHE BOOL "Enable parallel NetCDF" FORCE)
set(DEBUG_LINKMPI OFF CACHE BOOL "Enable linkmpi option when DEBUG mode is on" FORCE)
Copy link
Contributor

Choose a reason for hiding this comment

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

Are we debugging MPI implementation here?

I see we are hard-wiring flags such as:

if(DEBUG)
     if(OPENMP)
        set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -link_mpi=dbg_mt")
      else()
        set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -link_mpi=dbg")
      endif()
endif()

This should be handled by linking to the runtime debug MPI library by setting an environment variable such as I_MPI_LINK

By adding those flags at compile time, we are essentially debugging the MPI implementation.

@@ -56,6 +56,9 @@ set +x
if [[ $MACHINE_ID == macosx.* ]] || [[ $MACHINE_ID == linux.* ]]; then
source $PATHTR/modulefiles/${MACHINE_ID}/fv3
else
if [[ $MACHINE_ID == wcoss2 ]]; then
source /apps/prod/lmodules/startLmod
Copy link
Contributor

@MinsukJi-NOAA MinsukJi-NOAA Nov 20, 2020

Choose a reason for hiding this comment

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

I guess this will eventually be moved to ../NEMS/src/conf/module-setup.*sh.inc?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Yes. Or if they switch to Lmod version of modules, sourcing this script might not be necessary at all.

@@ -173,6 +173,33 @@ elif [[ $MACHINE_ID = wcoss_dell_p3 ]]; then
cp fv3_conf/fv3_bsub.IN_wcoss_dell_p3 fv3_conf/fv3_bsub.IN
cp fv3_conf/compile_bsub.IN_wcoss_dell_p3 fv3_conf/compile_bsub.IN

elif [[ $MACHINE_ID = wcoss2 ]]; then

source /apps/prod/lmodules/startLmod
Copy link
Contributor

Choose a reason for hiding this comment

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

Once NEMS/src/conf/module-setup.*sh.inc is modified to include wcoss2, this line will not be needed.

@DusanJovic-NOAA
Copy link
Collaborator Author

Merged in #295

@DusanJovic-NOAA DusanJovic-NOAA deleted the wcoss2 branch December 12, 2020 15:43
@aerorahul aerorahul mentioned this pull request Dec 14, 2020
pjpegion pushed a commit to NOAA-PSL/ufs-weather-model.p7b that referenced this pull request Jul 20, 2021
… UGWP bugfixes, LTP bugfixes, sfcsub update, framework update (ufs-community#291)

* ugwpv1_gsldrag bug fixes, and GFS_typdefs updates associated with diag flags for ugwpv1_gsldrag and GFS_DCNV_generic.F90
* Change vertical dimension of arrays atmosphere_heat_diffusivity (aka dkt) and atmosphere_momentum_diffusivity (aka dku), update long names
* Updaate .gitmodules and submodule pointers for ccpp-framework and ccpp-physics for code review and testing
* Update descriptions of dku and dkt in ccpp/driver/GFS_diagnostics.F90 to match what is in the CCPP metadata
* Revert .gitmodules and update submodule pointers for ccpp-framework and ccpp-physics
Co-authored-by: Michael Toy <[email protected]>
epic-cicd-jenkins pushed a commit that referenced this pull request Apr 17, 2023
…sed to avoid bug with do_sppt/skeb/shum namelist entries (#291)

* Remove all references to /lfs3 on Jet

* Add Ben and Ratko to the CODEOWNERS file

* Replace hard-coded make_orog module file with build-level module file in UFS_UTILS

* Remove hard-coded make_sfc_climo module file

* Fixes after updating fork with authoritative repo

* Set ad-hoc stochastic physics scheme magnitudes to -999.0 when not used to avoid bug with do_sppt/skeb/shum namelist entries

* Change stanzas in setup.sh for setting the ad-hoc schemes to "TRUE" and "FALSE" from lowercase to uppercase, and move the "if false, then -999.0" block from the generate to the setup script
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 ufs-weather-model to acorn (WCOSS2 TDS)
3 participants