Skip to content

Commit

Permalink
Build standalone UPP via cmake (#257)
Browse files Browse the repository at this point in the history
* 1)add capcity of building standalone UPP via cmake; 2)unify UPP executable as upp.x.

* Remove theia config. in compile_upp.sh.

* Update compile_upp.sh based on comments from Rahul.

* Update detect_machine.sh.

* Update VERSION to 10.0.3
  • Loading branch information
WenMeng-NOAA authored Jan 19, 2021
1 parent 4a280f4 commit b267dd9
Show file tree
Hide file tree
Showing 9 changed files with 323 additions and 2 deletions.
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
10.0.2
10.0.3
36 changes: 36 additions & 0 deletions modulefiles/hera
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#%Module######################################################################
# Wen Meng 01/2021, Set up config. with the hpc-stack NCEPLIBS.
##############################################################################

proc ModulesHelp { } {
puts stderr "Loads modules required for building upp"
}
module-whatis "Loads UPP prerequisites on Hera"

module load cmake/3.16.1

module use /scratch2/NCEPDEV/nwprod/hpc-stack/libs/hpc-stack/modulefiles/stack
module load hpc/1.1.0
module load hpc-intel/18.0.5.274
module load hpc-impi/2018.0.4

module load jasper/2.0.22
module load zlib/1.2.11
module load png/1.6.35

module load hdf5/1.10.6
module load netcdf/4.7.4

module load bacio/2.4.1
module load crtm/2.3.0
module load g2/3.4.1
module load g2tmpl/1.9.1
module load gfsio/1.4.1
module load ip/3.3.3
module load nemsio/2.5.2
module load sfcio/1.4.1
module load sigio/2.3.2
module load sp/2.3.3
module load w3nco/2.4.1
module load w3emc/2.7.3
module load wrf_io/1.1.1
36 changes: 36 additions & 0 deletions modulefiles/jet
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#%Module######################################################################
# Wen Meng 01/2021, Set up config. with the hpc-stack NCEPLIBS.
##############################################################################

proc ModulesHelp { } {
puts stderr "Loads modules required for building upp"
}
module-whatis "Loads UPP prerequisites on Jet"

module load cmake/3.16.1

module use /lfs4/HFIP/hfv3gfs/nwprod/hpc-stack/libs/modulefiles/stack
module load hpc/1.1.0
module load hpc-intel/18.0.5.274
module load hpc-impi/2018.4.274

module load jasper/2.0.22
module load zlib/1.2.11
module load png/1.6.35

module load hdf5/1.10.6
module load netcdf/4.7.4

module load bacio/2.4.1
module load crtm/2.3.0
module load g2/3.4.1
module load g2tmpl/1.9.1
module load gfsio/1.4.1
module load ip/3.3.3
module load nemsio/2.5.2
module load sfcio/1.4.1
module load sigio/2.3.2
module load sp/2.3.3
module load w3nco/2.4.1
module load w3emc/2.7.3
module load wrf_io/1.1.1
36 changes: 36 additions & 0 deletions modulefiles/orion
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#%Module######################################################################
# Wen Meng 01/2021, Set up config. with the hpc-stack NCEPLIBS.
##############################################################################

proc ModulesHelp { } {
puts stderr "Loads modules required for building upp"
}
module-whatis "Loads UPP prerequisites on Orion"

module load cmake/3.17.3

module use /apps/contrib/NCEP/libs/hpc-stack/modulefiles/stack
module load hpc/1.1.0
module load hpc-intel/2018.4
module load hpc-impi/2018.4

module load jasper/2.0.22
module load zlib/1.2.11
module load png/1.6.35

module load hdf5/1.10.6
module load netcdf/4.7.4

module load bacio/2.4.1
module load crtm/2.3.0
module load g2/3.4.1
module load g2tmpl/1.9.1
module load gfsio/1.4.1
module load ip/3.3.3
module load nemsio/2.5.2
module load sfcio/1.4.1
module load sigio/2.3.2
module load sp/2.3.3
module load w3nco/2.4.1
module load w3emc/2.7.3
module load wrf_io/1.1.1
42 changes: 42 additions & 0 deletions modulefiles/wcoss_cray
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#%Module######################################################################
# Wen Meng 01/2021, Set up config. with the hpc-stack NCEPLIBS.
##############################################################################

proc ModulesHelp { } {
puts stderr "Loads modules required for building upp"
}
module-whatis "Loads UPP prerequisites on WCOSS Luna and Surge"

module load cmake/3.16.2

module use /usrx/local/nceplibs/NCEPLIBS/cmake/install/NCEPLIBS-v1.3.0/modules
module load PrgEnv-intel
module rm intel
module load intel/18.1.163
module rm NetCDF-intel-sandybridge/4.2
module load xt-lsfhpc/9.1.3
module load craype-haswell

module use /usrx/local/dev/modulefiles
module load HDF5-parallel-intel-sandybridge/1.10.6
module load NetCDF-intel-sandybridge/4.7.4

module load jasper-gnu-sandybridge/1.900.1
module load zlib-intel-sandybridge/1.2.7
module load png-intel-sandybridge/1.2.49
setenv PNG_ROOT /usrx/local/prod//png/1.2.49/intel/sandybridge

module use /usrx/local/nceplibs/NCEPLIBS/cmake/install/NCEPLIBS-v1.3.0/modules
module load bacio/2.4.1
module load crtm/2.3.0
module load g2/3.4.1
module load g2tmpl/1.9.1
module load gfsio/1.4.1
module load ip/3.3.3
module load nemsio/2.5.2
module load sfcio/1.4.1
module load sigio/2.3.2
module load sp/2.3.3
module load w3nco/2.4.1
module load w3emc/2.7.3
module load wrf_io/1.1.1
36 changes: 36 additions & 0 deletions modulefiles/wcoss_dell_p3
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#%Module######################################################################
# Wen Meng 01/2021, Set up config. with the hpc-stack NCEPLIBS.
##############################################################################

proc ModulesHelp { } {
puts stderr "Loads modules required for building upp"
}
module-whatis "Loads UPP prerequisites on WCOSS Venus and Mars"

module load cmake/3.16.2

module use /usrx/local/nceplibs/dev/hpc-stack/libs/hpc-stack/modulefiles/stack
module load hpc/1.1.0
module load hpc-ips/18.0.1.163
module load hpc-impi/18.0.1

module load jasper/2.0.22
module load zlib/1.2.11
module load png/1.6.35

module load hdf5/1.10.6
module load netcdf/4.7.4

module load bacio/2.4.1
module load crtm/2.3.0
module load g2/3.4.1
module load g2tmpl/1.9.1
module load gfsio/1.4.1
module load ip/3.3.3
module load nemsio/2.5.2
module load sfcio/1.4.1
module load sigio/2.3.2
module load sp/2.3.3
module load w3nco/2.4.1
module load w3emc/2.7.3
module load wrf_io/1.1.1
2 changes: 1 addition & 1 deletion sorc/ncep_post.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ elseif(CMAKE_Fortran_COMPILER_ID MATCHES "^(GNU|Clang|AppleClang)$")
endif()

set(LIBNAME "upp")
set(EXENAME "ncep_post")
set(EXENAME "upp.x")

set(module_dir "${CMAKE_CURRENT_BINARY_DIR}/include")

Expand Down
32 changes: 32 additions & 0 deletions tests/compile_upp.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#!/bin/bash
# Wen Meng 01/2020, Set up for cmake build.
#############################################

set -x

#Clean loaded modules
module purge

hostname
source detect_machine.sh
if [[ $(uname -s) == Darwin ]]; then
readonly MYDIR=$(cd "$(dirname "$(greadlink -f -n "${BASH_SOURCE[0]}" )" )" && pwd -P)
else
readonly MYDIR=$(cd "$(dirname "$(readlink -f -n "${BASH_SOURCE[0]}" )" )" && pwd -P)
fi
PATHTR=${PATHTR:-$( cd ${MYDIR}/.. && pwd )}

#Load required modulefiles
module use $PATHTR/modulefiles
modulefile=${MACHINE_ID}
module load $modulefile
module list

rm -rf build install
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=../install -DBUILD_WITH_WRFIO=ON ../..
make -j6
make install

rm -rf $PATHTR/exec && mkdir $PATHTR/exec
cp $PATHTR/tests/install/bin/upp.x $PATHTR/exec/.
103 changes: 103 additions & 0 deletions tests/detect_machine.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
#!/bin/bash

case $(hostname -f) in

llogin1) MACHINE_ID=wcoss_cray ;; ### luna
llogin2) MACHINE_ID=wcoss_cray ;; ### luna
llogin3) MACHINE_ID=wcoss_cray ;; ### luna

slogin1) MACHINE_ID=wcoss_cray ;; ### surge
slogin2) MACHINE_ID=wcoss_cray ;; ### surge
slogin3) MACHINE_ID=wcoss_cray ;; ### surge

v71a1.ncep.noaa.gov) MACHINE_ID=wcoss_dell_p3 ;; ### venus
v71a2.ncep.noaa.gov) MACHINE_ID=wcoss_dell_p3 ;; ### venus
v71a3.ncep.noaa.gov) MACHINE_ID=wcoss_dell_p3 ;; ### venus
v72a1.ncep.noaa.gov) MACHINE_ID=wcoss_dell_p3 ;; ### venus
v72a2.ncep.noaa.gov) MACHINE_ID=wcoss_dell_p3 ;; ### venus
v72a3.ncep.noaa.gov) MACHINE_ID=wcoss_dell_p3 ;; ### venus

m71a1.ncep.noaa.gov) MACHINE_ID=wcoss_dell_p3 ;; ### mars
m71a2.ncep.noaa.gov) MACHINE_ID=wcoss_dell_p3 ;; ### mars
m71a3.ncep.noaa.gov) MACHINE_ID=wcoss_dell_p3 ;; ### mars
m72a1.ncep.noaa.gov) MACHINE_ID=wcoss_dell_p3 ;; ### mars
m72a2.ncep.noaa.gov) MACHINE_ID=wcoss_dell_p3 ;; ### mars
m72a3.ncep.noaa.gov) MACHINE_ID=wcoss_dell_p3 ;; ### mars

alogin01) MACHINE_ID=wcoss2 ;; ### acorn
alogin02) MACHINE_ID=wcoss2 ;; ### acorn

gaea9) MACHINE_ID=gaea ;; ### gaea9
gaea10) MACHINE_ID=gaea ;; ### gaea10
gaea11) MACHINE_ID=gaea ;; ### gaea11
gaea12) MACHINE_ID=gaea ;; ### gaea12
gaea13) MACHINE_ID=gaea ;; ### gaea13
gaea14) MACHINE_ID=gaea ;; ### gaea14
gaea15) MACHINE_ID=gaea ;; ### gaea15
gaea16) MACHINE_ID=gaea ;; ### gaea16
gaea9.ncrc.gov) MACHINE_ID=gaea ;; ### gaea9
gaea10.ncrc.gov) MACHINE_ID=gaea ;; ### gaea10
gaea11.ncrc.gov) MACHINE_ID=gaea ;; ### gaea11
gaea12.ncrc.gov) MACHINE_ID=gaea ;; ### gaea12
gaea13.ncrc.gov) MACHINE_ID=gaea ;; ### gaea13
gaea14.ncrc.gov) MACHINE_ID=gaea ;; ### gaea14
gaea15.ncrc.gov) MACHINE_ID=gaea ;; ### gaea15
gaea16.ncrc.gov) MACHINE_ID=gaea ;; ### gaea16

hfe01) MACHINE_ID=hera ;; ### hera01
hfe02) MACHINE_ID=hera ;; ### hera02
hfe03) MACHINE_ID=hera ;; ### hera03
hfe04) MACHINE_ID=hera ;; ### hera04
hfe05) MACHINE_ID=hera ;; ### hera05
hfe06) MACHINE_ID=hera ;; ### hera06
hfe07) MACHINE_ID=hera ;; ### hera07
hfe08) MACHINE_ID=hera ;; ### hera08
hfe09) MACHINE_ID=hera ;; ### hera09
hfe10) MACHINE_ID=hera ;; ### hera10
hfe11) MACHINE_ID=hera ;; ### hera11
hfe12) MACHINE_ID=hera ;; ### hera12

fe1) MACHINE_ID=jet ;; ### jet01
fe2) MACHINE_ID=jet ;; ### jet02
fe3) MACHINE_ID=jet ;; ### jet03
fe4) MACHINE_ID=jet ;; ### jet04
fe5) MACHINE_ID=jet ;; ### jet05
fe6) MACHINE_ID=jet ;; ### jet06
fe7) MACHINE_ID=jet ;; ### jet07
fe8) MACHINE_ID=jet ;; ### jet08
tfe1) MACHINE_ID=jet ;; ### jet09
tfe2) MACHINE_ID=jet ;; ### jet10

Orion-login-1.HPC.MsState.Edu) MACHINE_ID=orion ;; ### orion1
Orion-login-2.HPC.MsState.Edu) MACHINE_ID=orion ;; ### orion2
Orion-login-3.HPC.MsState.Edu) MACHINE_ID=orion ;; ### orion3
Orion-login-4.HPC.MsState.Edu) MACHINE_ID=orion ;; ### orion4

cheyenne1.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne1
cheyenne2.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne2
cheyenne3.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne3
cheyenne4.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne4
cheyenne5.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne5
cheyenne6.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne6
cheyenne1.ib0.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne1
cheyenne2.ib0.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne2
cheyenne3.ib0.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne3
cheyenne4.ib0.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne4
cheyenne5.ib0.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne5
cheyenne6.ib0.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne6

login1.stampede2.tacc.utexas.edu) MACHINE_ID=stampede ;; ### stampede1
login2.stampede2.tacc.utexas.edu) MACHINE_ID=stampede ;; ### stampede2
login3.stampede2.tacc.utexas.edu) MACHINE_ID=stampede ;; ### stampede3
login4.stampede2.tacc.utexas.edu) MACHINE_ID=stampede ;; ### stampede4
esac

# Overwrite auto-detect with RT_MACHINE if set
MACHINE_ID=${RT_MACHINE:-${MACHINE_ID}}

# Append compiler
#if [ $MACHINE_ID = orion ] || [ $MACHINE_ID = hera ] || [ $MACHINE_ID = cheyenne ] || [ $MACHINE_ID = jet ] || [ $MACHINE_ID = gaea ] || [ $MACHINE_ID = stampede ] ; then
# MACHINE_ID=${MACHINE_ID}.${RT_COMPILER}
#fi

echo "Machine: " $MACHINE_ID

0 comments on commit b267dd9

Please sign in to comment.