-
Notifications
You must be signed in to change notification settings - Fork 259
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
Conversation
There was a problem hiding this 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 | ||
|
There was a problem hiding this comment.
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) |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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.
Merged in #295 |
… 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]>
…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
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