Delft3D
Introduction
Usage
module load Delft3D/trunk2-ics2015 New Cluster: module load delft3d/6244intel
Installation
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Source from: svn co https://svn.oss.deltares.nl/repos/delft3d/trunk delft3trunk cd /sw/Delft3D/src unzip D3D_trunk.zip >>>>>>>>>>> chmod +x ./scripts_lgpl/linux/update_version.sh chmod +x ./scripts_lgpl/linux/make_revision.sh >>>>>>>>>>>> module load intel-ComposerXE/2015.2.164 module load intel-mpi/5.0.3.048 module load compilers/autoconf-2.69 module load NetCDF/4.3.3.1-intel_2015 export NETCDF_CFLAGS=/sw/NetCDF/4.3.3.1/ComposerXE2015/include export NETCDF_LIBS=/sw/NetCDF/4.3.3.1/ComposerXE2015/lib export I_MPI_F90=ifort export I_MPI_F77=ifort export UUIDLIBS_ADDITIONAL="/lib64/libuuid.so.1" export UUIDLIBS=/lib64/libuuid.so.1 cd /sw/Delft3D/src/trunk2/src sh autogen.sh -v 2>&1 | tee autoconfigLog.txt CFLAGS='-O2' CXXFLAGS='-O2' FFLAGS='-O2' FCFLAGS='-O2' ./configure --prefix=/sw/Delft3D/unknown 2>&1 | tee configureLog.txt >>>>>>>After the above step, add -luuid in the Makefile>>>>> vi Makefile FCLIBS = -L/sw/NetCDF/4.3.3.1/ComposerXE2015/lib:-L/sw...............snip ......-ldl -luuid >>>>>>>>> Â make all 2>&1 | tee makeLog.txt make install all 2>&1 | tee makeInstallLog.txtÂ
Sample pbs script
Sample script to run on flashlite cluster
###This is only for flashlite. It won't work with gowonda #! /bin/bash ### Template PBS script to submit Delft3d job to queue gccm #PBS -m e #PBS -N 3d12wvnew #PBS -l walltime=200:00:00 #PBS -l nodes=1:ppn=4:intel,mem=30gb,vmem=30gb #PBS -A qris-gu source $HOME/.bashrc module load delft3d-rev5624 cd /gpfs1/groups/gccmss/project/delft3d/3D/12waves_3_new/ ##input data file export MDWFILE=fm_wave_bcw.mdw export ARGFILE=config_flow2d3d.xml ## RUN ## # start flow echo "=== start Delft3D-FLOW in the background ===" #$MPIRUNEXEC -np $NHOSTS d_hydro.exe $ARGFILE & #deltares_hydro.exe $ARGFILE -keepXML & #deltares_hydro.exe $ARGFILE & d_hydro.exe $ARGFILE & # start wave echo "=== start Delft3D-WAVE in the background ===" #$MPIRUNEXEC -np $NHOSTS wave.exe $MDWFILE 1 wave.exe $MDWFILE 1 echo "=== calculation finished ===" echo "Finished job "`date`
Installation on the new Cluster : Version 62441
Initial Pre-Requisites
Environment: OS = RHEL 7.6 with intelParallelStudio2019update5 Initial Pre-requisites • Subversion client Available on the cluster • GNU Autotools >>>>> Already installed Development Tools rpm -qa|grep -i auto autofs-5.0.7-99.el7.x86_64 autoconf-2.69-11.el7.noarch automake-1.13.4-3.el7.noarch libsss_autofs-1.16.2-13.el7_6.8.x86_64 autogen-libopts-5.18-5.el7.x86_64 >>>> • GNU Libtool. rpm -qa|grep -i libtool libtool-2.4.2-22.el7_3.x86_64 libtool-ltdl-2.4.2-22.el7_3.x86_64 We also have libtool, libtool-ltdl and libtool-ltdl-devel • GNU C++ compiler (use Package Manager), version 3.4.6. Alternative: Intel C++ compiler, version 11.1 or higher. gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) • expat-devel rpm -qa|grep expat expat-2.1.0-10.el7_3.x86_64 expat-devel-2.1.0-10.el7_3.x86_64 • GNU Fortran compiler 4.9.1. version 4.8.5 20150623 • Mpich, version 3.1.2 or higher rpm -qa|grep mpich mpich-3.2-devel-3.2-2.el7.x86_64 mpich-3.2-3.2-2.el7.x86_64 • Lex & Yacc rpm -qa|egrep "flex|bison" flex-devel-2.5.37-6.el7.x86_64 bison-3.0.4-2.el7.x86_64 bison-devel-3.0.4-2.el7.x86_64 flex-2.5.37-6.el7.x86_64 • OpenSSL. rpm -qa|grep -i openssl pyOpenSSL-0.13.1-4.el7.x86_64 perl-Crypt-OpenSSL-RSA-0.28-7.el7.x86_64 openssl-libs-1.0.2k-16.el7_6.1.x86_64 openssl-devel-1.0.2k-16.el7_6.1.x86_64 perl-Crypt-OpenSSL-Bignum-0.04-18.el7.x86_64 perl-Crypt-OpenSSL-Random-0.04-21.el7.x86_64 openssl-1.0.2k-16.el7_6.1.x86_64 • "readline-devel" (RedHat/Fedora) rpm -qa|grep readline readline-devel-6.2-10.el7.x86_64 readline-6.2-10.el7.x86_64 • Ruby rpm -qa|grep -i ruby rubygem-rdoc-4.0.0-35.el7_6.noarch rubygem-io-console-0.4.2-35.el7_6.x86_64 rubygem-bigdecimal-1.2.0-35.el7_6.x86_64 rubygem-psych-2.0.0-35.el7_6.x86_64 ruby-irb-2.0.0.648-35.el7_6.noarch ruby-devel-2.0.0.648-35.el7_6.x86_64 rubygems-2.0.14.1-35.el7_6.noarch rubygem-json-1.7.7-35.el7_6.x86_64 ruby-libs-2.0.0.648-35.el7_6.x86_64 ruby-2.0.0.648-35.el7_6.x86_64 • NetCDF: netcdf-c-4.6.1 or above, netcdf-fortran-4.4.5 or above, with hdf5 enabled module load library/netcdf/netcdf-fortran/4.5.2 module load library/netcdf/netcdf-c/4.7.3 (module load library/netcdf/netcdf-cxx/4.3.1) (Compiled with gcc 4.8.5) • uuid-dev package rpm -qa|grep uuid libuuid-devel-2.23.2-59.el7_6.1.x86_64 libuuid-2.23.2-59.el7_6.1.x86_64
Actual Install
module purge module load intel/intelParallelStudio2019 module load library/xz/5.2.4 module load library/hdf5/5-1.10.5-intel module load library/netcdf/netcdf-fortran/4.5.2-intel module load library/netcdf/netcdf-cxx/4.3.1-intel module load library/netcdf/netcdf-c/4.7.3-intel module load mpi/mpich/3.3.2-intel module list Currently Loaded Modulefiles: 1) intel/intelParallelStudio2019 4) library/netcdf/netcdf-fortran/4.5.2-intel 7) mpi/mpich/3.3.2-intel 2) library/xz/5.2.4 5) library/netcdf/netcdf-cxx/4.3.1-intel 3) library/hdf5/5-1.10.5-intel 6) library/netcdf/netcdf-c/4.7.3-intel cd /sw/Delft3D/62441/src/Delft3D_newversion/Delft3D_Source_62441/src.intel sh autogen.sh 2>&1 | tee autogenLogs-intel.txt ./configure --prefix=/sw/Delft3D/62441intel 2>&1 | tee configureLogs-intel.txt cd /sw/Delft3D/62441/src/Delft3D_newversion/Delft3D_Source_62441/src.intel/scripts_lgpl/linux chmod +x * cd /sw/Delft3D/62441/src/Delft3D_newversion/Delft3D_Source_62441/src.intel #Perform FIX 1: # You may skip FIX 2 as it is done and no longer needed: #Perform FIX 3 make 2>&1 | tee makeLogs-intel.txt make install 2>&1 | tee makeInstallLogs.txt Some of the fixes: ================== FIX 1: ===== cd /sw/Delft3D/62441/src/Delft3D_newversion/Delft3D_Source_62441/src.intel sh fixPTHread.sh ........Notes and Reference......................... cat fixPTHread.sh #Reference#https://lists.gnu.org/archive/html/emacs-devel/2019-05/msg00032.html /bin/ld: //usr/lib64/libpthread.so.0: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status On Red Hat and Fedora I believe this is because of `-lrt`. I patch the makefiles so '-lrt' becomes '-;rt -lpthread'. I do so (1) after unpacking the tarball; and (2) after configure. It usually sidesteps this error. for file in $(find "$PWD" -iname 'Makefile') do echo "patching $file" sed -e 's|-lrt|-lrt -lpthread|g' "$file" > "$file.fixed" mv "$file.fixed" "$file" touch -t 20912101610 "$file" done ................................. >>>>>>>>>>>>>>>>>> FIX 2: Only needs to be done once. ====== mkdir /sw/intel/ps/2019up5/intelpython3/intel64/ ln -s /sw/intel/ps/2019up5/intelpython3/include/ /sw/intel/ps/2019up5/intelpython3/intel64/include FIX 3: Manually compile two binaries. piece.f and concat.f ====== cd /sw/Delft3D/62441/src/Delft3D_newversion/Delft3D_Source_62441/src.intel/engines_gpl/waq/packages/waq_utils_f/src/interact I had to do this manually: /sw/Delft3D/62441/src/Delft3D_newversion/Delft3D_Source_62441/src.intel/libtool --tag=F77 --mode=compile mpif77 -DWITH_DELFTONLINE -I/sw/mpi/mpich/3.3.2-intel/include:-I/sw/library/netcdf/NetCDF-C/4.7.3-intel/include:-I/sw/library/netcdf/netcdf-cxx/4-4.3.1-intel/include:-I/sw/library/netcdf/NetCDF-Fortran/4.5.2-intel/include:-I/sw/library/hdf5/5-1.10.5-intel/include:-I/sw/library/xz/5.2.4/include -c -o piece.lo piece.f /sw/Delft3D/62441/src/Delft3D_newversion/Delft3D_Source_62441/src.intel/libtool --tag=F77 --mode=compile mpif77 -DWITH_DELFTONLINE -I/sw/mpi/mpich/3.3.2-intel/include:-I/sw/library/netcdf/NetCDF-C/4.7.3-intel/include:-I/sw/library/netcdf/netcdf-cxx/4-4.3.1-intel/include:-I/sw/library/netcdf/NetCDF-Fortran/4.5.2-intel/include:-I/sw/library/hdf5/5-1.10.5-intel/include:-I/sw/library/xz/5.2.4/include -c -o concat.lo concat.f mpif77 -DWITH_DELFTONLINE -I/sw/mpi/mpich/3.3.2-intel/include:-I/sw/library/netcdf/NetCDF-C/4.7.3-intel/include:-I/sw/library/netcdf/netcdf-cxx/4-4.3.1-intel/include:-I/sw/library/netcdf/NetCDF-Fortran/4.5.2-intel/include:-I/sw/library/hdf5/5-1.10.5-intel/include:-I/sw/library/xz/5.2.4/include -frecursive -c concat.f -fPIC -o >>>>>>>>>>>>>>>>>>>>>>>