|
| 1 | +--- |
| 2 | +title: Pleiades (NASA NAS HECC) |
| 3 | +layout: default |
| 4 | +parent: High-Performance Computing (HPC) |
| 5 | +--- |
| 6 | + |
| 7 | +# Pleiades (NASA NAS HECC) |
| 8 | +{: .no_toc } |
| 9 | +For comprehensive information on access to and use of NASA NAS High-End Computing Capability (HECC), please refer to <a href="https://www.nas.nasa.gov/hecc/support/kb" target="_blank">their knowledge base</a>. |
| 10 | + |
| 11 | +## Table of Contents |
| 12 | +{: .no_toc } |
| 13 | +1. TOC |
| 14 | +{:toc} |
| 15 | +---- |
| 16 | + |
| 17 | +## Getting an Account |
| 18 | +New users will have to ask a NASA- or JPL-employed PI to request an account for them on NASA NAS HECC. They will need the group ID of the PI in order to submit this request. |
| 19 | + |
| 20 | +First, the PI should use the following procedure, |
| 21 | +- navigate to the <a href="https://www.nas.nasa.gov/hecc/portal/accounts" target="_blank">NASA NAS HECC 'Account Request System' page</a> |
| 22 | +- select option '3. I want to request a NASA identity for one of my new users' |
| 23 | +- provide the requested information |
| 24 | + |
| 25 | +Then, the user needs to request an account with the following procedure, |
| 26 | +- navigate to the <a href="https://www.nas.nasa.gov/hecc/portal/accounts" target="_blank">NASA NAS HECC 'Account Request System' page</a> |
| 27 | +- select option '2. I want to request and account for myself' |
| 28 | +- provide the group ID for the PI that initiated the request |
| 29 | +- the PI will then receive an email to approve the request |
| 30 | + |
| 31 | +NOTE: All users must complete NASA's Basic IT Security Training |
| 32 | + |
| 33 | +### Current Points of Contact |
| 34 | +- Dartmouth security officer: < a href= "mailto:[email protected]">Sean McNamara</ a> (< a href= "https://itc.dartmouth.edu/about/who-we-are/itc-leadership" target= "_blank">Dartmouth ITC</ a>) |
| 35 | +- JPL IT security officer: < a href= "mailto:[email protected]">Tomas Soderstrom</ a> |
| 36 | +- UCI OIT security officer: < a href= "mailto:[email protected]">Josh Drummond</ a> |
| 37 | + |
| 38 | +## Logging In |
| 39 | +Please refer to the following documentation pages to log into NAS systems and make subsequent logins more seamless, |
| 40 | +- <a href="https://www.nas.nasa.gov/hecc/support/kb/logging-into-nas-systems-for-the-first-time_539.html" target="_blank">Logging Into NAS Systems for the First Time</a> |
| 41 | +- <a href="https://www.nas.nasa.gov/hecc/support/kb/setting-up-public-key-authentication_230.html" target="_blank">Setting Up Public Key Authentication</a> |
| 42 | +- <a href="https://www.nas.nasa.gov/hecc/support/kb/setting-up-ssh-passthrough_232.html" target="_blank">Setting Up SSH Passthrough</a> |
| 43 | +- <a href="https://www.nas.nasa.gov/hecc/support/kb/one-step-connection-using-public-key-and-passthrough_62.html" target="_blank">One-Step Connection Using Public Key and Passthrough</a> |
| 44 | + |
| 45 | +## Checking Out a Copy of the ISSM Code Repository |
| 46 | +Users should clone the ISSM code repository to their `/nobackup/` directory where they can save a lot more files than in their home directory. |
| 47 | + |
| 48 | +## Environment |
| 49 | +Add the following to `~/.bashrc` in order to set up the environment properly for compiling ISSM, |
| 50 | +```sh |
| 51 | +# Modules |
| 52 | +module load mpi-hpe/mpt |
| 53 | +module load comp-intel/2020.4.304 |
| 54 | +module load petsc/3.17.3_intel_mpt_py |
| 55 | + |
| 56 | +# Variables |
| 57 | +export CC=mpicc |
| 58 | +export CXX=mpicxx |
| 59 | +export F77=mpif77 |
| 60 | +export MPICC_CC=icx |
| 61 | +export MPICXX_CXX=icpx |
| 62 | +export MPF90_F90=ifort |
| 63 | + |
| 64 | +export ISSM_DIR="<ISSM_DIR>" |
| 65 | +``` |
| 66 | +replacing `<ISSM_DIR>` with the path to the local copy of the ISSM code repository. Run `source ~/.bashrc` to apply these changes to the current session. |
| 67 | + |
| 68 | +{: .highlight-title } |
| 69 | +> NOTE |
| 70 | +> |
| 71 | +> If `~/.bashrc` is not loaded when on login, add a new file, `~/.bash_login`, with the following content, |
| 72 | +> ```sh |
| 73 | +> if [ -f ~/.bashrc ]; then . ~/.bashrc; fi |
| 74 | +> ``` |
| 75 | +
|
| 76 | +{: .highlight-title } |
| 77 | +> NOTE |
| 78 | +> |
| 79 | +> The version of the `comp-intel` module as well as the corresponding value of variable `COMP_INTEL_ROOT` may need to be updated as recommended/available modules are updated on HECC. Please update this page or ask a project lead to do so when this occurs. |
| 80 | +
|
| 81 | +## Installing ISSM |
| 82 | +
|
| 83 | +{: .highlight-title } |
| 84 | +> Important |
| 85 | +> |
| 86 | +> ISSM and external packages should not be compiled on the Pleiades front end. Please refer to the NAS HECC knowledge base article <a href="https://www.nas.nasa.gov/hecc/support/kb/reserving-a-dedicated-compute-node_556.html" target="_blank">'Reserving a Dedicated Compute Node'</a> for instructions on reserving a and logging into a compute node for the purpose of compiling. |
| 87 | +
|
| 88 | +{: .highlight-title } |
| 89 | +> Important |
| 90 | +> |
| 91 | +> Do *not* install `mpich` and `petsc`. The MPI implementation (MPT) provided by HECC *must* be used. Pleiades will *only* be used to run solutions and the user's local machine for pre- and post-processing. |
| 92 | +
|
| 93 | +There are a number of configurations for ISSM provided below. Users may also refer to the recipes in `${ISSM_DIR}/jenkins/` prefixed with `pleiades-`. |
| 94 | +
|
| 95 | +### Installing ISSM with Basic Capabilities |
| 96 | +For an installation of ISSM with basic capabilities, the only external packages required are, |
| 97 | +```sh |
| 98 | +autotools install-linux.sh |
| 99 | +triangle install-linux.sh |
| 100 | +m1qn3 install-linux.sh |
| 101 | +semic install.sh |
| 102 | +``` |
| 103 | +
|
| 104 | +Before configuring ISSM, run, |
| 105 | +```sh |
| 106 | +cd $ISSM_DIR |
| 107 | +autoreconf -ivf |
| 108 | +``` |
| 109 | +
|
| 110 | +Then use the following configuring script (adapting it as needed), |
| 111 | +```sh |
| 112 | +export CFLAGS="-g -Ofast" |
| 113 | +export CXXFLAGS="-g -Ofast -xCORE-AVX512,CORE-AVX2 -xAVX -std=c++11" |
| 114 | +
|
| 115 | +./configure \ |
| 116 | + --prefix="${ISSM_DIR}" \ |
| 117 | + --enable-development \ |
| 118 | + --enable-standalone-libraries \ |
| 119 | + --with-wrappers=no \ |
| 120 | + --with-fortran-lib="-L${COMP_INTEL_ROOT}/compiler/lib/intel64_lin -lifcore -lifport -lgfortran" \ |
| 121 | + --with-mkl-libflags="-L${COMP_INTEL_ROOT}/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm" \ |
| 122 | + --with-mpi-include="${MPI_ROOT}/include" \ |
| 123 | + --with-mpi-libflags="-L${MPI_ROOT}/lib -lmpi" \ |
| 124 | + --with-blas-lapack-lib="-L${COMP_INTEL_ROOT}/mkl/lib/intel64 -lmkl_blas95_lp64 -lmkl_lapack95_lp64" \ |
| 125 | + --with-metis-dir="${PETSC_DIR}" \ |
| 126 | + --with-parmetis-dir="${PETSC_DIR}" \ |
| 127 | + --with-scalapack-lib="-L${COMP_INTEL_ROOT}/mkl/lib/intel64/libmkl_scalapack_lp64.so" \ |
| 128 | + --with-mumps-dir="${PETSC_DIR}" \ |
| 129 | + --with-petsc-dir="${PETSC_DIR}" \ |
| 130 | + --with-triangle-dir="${ISSM_DIR}/externalpackages/triangle/install" \ |
| 131 | + --with-m1qn3-dir="${ISSM_DIR}/externalpackages/m1qn3/install" \ |
| 132 | + --with-semic-dir="${ISSM_DIR}/externalpackages/semic/install" |
| 133 | +``` |
| 134 | +
|
| 135 | +### Installing ISSM with Dakota |
| 136 | +For an installation of ISSM with Dakota, the following external packages are required, |
| 137 | +```sh |
| 138 | +autotools install-linux.sh |
| 139 | +boost install-1.7-linux.sh |
| 140 | +dakota install-6.2-pleiades.sh |
| 141 | +chaco install-linux.sh |
| 142 | +triangle install-linux.shwhic |
| 143 | +m1qn3 install-linux.sh |
| 144 | +semic install.sh |
| 145 | +``` |
| 146 | +
|
| 147 | +Before configuring ISSM, run, |
| 148 | +```sh |
| 149 | +cd $ISSM_DIR |
| 150 | +autoreconf -ivf |
| 151 | +``` |
| 152 | +
|
| 153 | +Then use the following configuring script (adapting it as needed), |
| 154 | +```sh |
| 155 | +export CFLAGS="-g -Ofast" |
| 156 | +export CXXFLAGS="-g -Ofast -xCORE-AVX512,CORE-AVX2 -xAVX -std=c++11" |
| 157 | +
|
| 158 | +./configure \ |
| 159 | + --prefix="${ISSM_DIR}" \ |
| 160 | + --enable-development \ |
| 161 | + --enable-standalone-libraries \ |
| 162 | + --with-wrappers=no \ |
| 163 | + --with-fortran-lib="-L${COMP_INTEL_ROOT}/compiler/lib/intel64_lin -lifcore -lifport -lgfortran" \ |
| 164 | + --with-mkl-libflags="-L${COMP_INTEL_ROOT}/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm" \ |
| 165 | + --with-mpi-include="${MPI_ROOT}/include" \ |
| 166 | + --with-mpi-libflags="-L${MPI_ROOT}/lib -lmpi" \ |
| 167 | + --with-blas-lapack-lib="-L${COMP_INTEL_ROOT}/mkl/lib/intel64 -lmkl_blas95_lp64 -lmkl_lapack95_lp64" \ |
| 168 | + --with-metis-dir="${PETSC_DIR}" \ |
| 169 | + --with-parmetis-dir="${PETSC_DIR}" \ |
| 170 | + --with-scalapack-lib="-L${COMP_INTEL_ROOT}/mkl/lib/intel64/libmkl_scalapack_lp64.so" \ |
| 171 | + --with-mumps-dir="${PETSC_DIR}" \ |
| 172 | + --with-petsc-dir="${PETSC_DIR}" \ |
| 173 | + --with-boost-dir="${ISSM_DIR}/externalpackages/boost/install" \ |
| 174 | + --with-dakota-dir="${ISSM_DIR}/externalpackages/dakota/install" \ |
| 175 | + --with-chaco-dir="${ISSM_DIR}/externalpackages/chaco/install" \ |
| 176 | + --with-triangle-dir="${ISSM_DIR}/externalpackages/triangle/install" \ |
| 177 | + --with-m1qn3-dir="${ISSM_DIR}/externalpackages/m1qn3/install" \ |
| 178 | + --with-semic-dir="${ISSM_DIR}/externalpackages/semic/install" |
| 179 | +``` |
| 180 | +
|
| 181 | +### Installing ISSM with Solid Earth Capabilities |
| 182 | +For an installation of ISSM with solid Earth capabilities, the following external packages are required, |
| 183 | +```sh |
| 184 | +autotools install-linux.sh |
| 185 | +boost install-1.7-linux.sh |
| 186 | +dakota install-6.2-pleiades.sh |
| 187 | +chaco install-linux.sh |
| 188 | +zlib install-1.sh |
| 189 | +hdf5 install-1.sh |
| 190 | +netcdf install-4.sh |
| 191 | +sqlite install.sh |
| 192 | +proj install-6.sh |
| 193 | +gdal install-3-linux.sh |
| 194 | +gshhg install.sh |
| 195 | +gmt install-6-pleiades.sh |
| 196 | +gmsh install-4-pleiades.sh |
| 197 | +triangle install-linux.sh |
| 198 | +m1qn3 install-linux.sh |
| 199 | +semic install.sh |
| 200 | +``` |
| 201 | +
|
| 202 | +Before configuring ISSM, run, |
| 203 | +```sh |
| 204 | +cd $ISSM_DIR |
| 205 | +autoreconf -ivf |
| 206 | +``` |
| 207 | +
|
| 208 | +Then use the following configuring script (adapting it as needed), |
| 209 | +```sh |
| 210 | +export CFLAGS="-g -Ofast" |
| 211 | +export CXXFLAGS="-g -Ofast -xCORE-AVX512,CORE-AVX2 -xAVX -std=c++11" |
| 212 | +
|
| 213 | +./configure \ |
| 214 | + --prefix="${ISSM_DIR}" \ |
| 215 | + --enable-development \ |
| 216 | + --enable-standalone-libraries \ |
| 217 | + --with-wrappers=no \ |
| 218 | + --with-fortran-lib="-L${COMP_INTEL_ROOT}/compiler/lib/intel64_lin -lifcore -lifport -lgfortran" \ |
| 219 | + --with-mkl-libflags="-L${COMP_INTEL_ROOT}/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm" \ |
| 220 | + --with-mpi-include="${MPI_ROOT}/include" \ |
| 221 | + --with-mpi-libflags="-L${MPI_ROOT}/lib -lmpi" \ |
| 222 | + --with-blas-lapack-lib="-L${COMP_INTEL_ROOT}/mkl/lib/intel64 -lmkl_blas95_lp64 -lmkl_lapack95_lp64" \ |
| 223 | + --with-metis-dir="${PETSC_DIR}" \ |
| 224 | + --with-parmetis-dir="${PETSC_DIR}" \ |
| 225 | + --with-scalapack-lib="-L${COMP_INTEL_ROOT}/mkl/lib/intel64/libmkl_scalapack_lp64.so" \ |
| 226 | + --with-mumps-dir="${PETSC_DIR}" \ |
| 227 | + --with-hdf5-dir="${ISSM_DIR}/externalpackages/hdf5/install" \ |
| 228 | + --with-petsc-dir="${PETSC_DIR}" \ |
| 229 | + --with-boost-dir="${ISSM_DIR}/externalpackages/boost/install" \ |
| 230 | + --with-dakota-dir="${ISSM_DIR}/externalpackages/dakota/install" \ |
| 231 | + --with-chaco-dir="${ISSM_DIR}/externalpackages/chaco/install" \ |
| 232 | + --with-proj-dir="${ISSM_DIR}/externalpackages/proj/install" \ |
| 233 | + --with-triangle-dir="${ISSM_DIR}/externalpackages/triangle/install" \ |
| 234 | + --with-m1qn3-dir="${ISSM_DIR}/externalpackages/m1qn3/install" \ |
| 235 | + --with-semic-dir="${ISSM_DIR}/externalpackages/semic/install" |
| 236 | +``` |
0 commit comments