| 42 | | }}} |
| 43 | | |
| 44 | | And replace `ISSM_DIR` with your actual trunk. Log out and log back in to apply this change. |
| 45 | | |
| 46 | | Note that if your `.bashrc` is not loaded when you logging, you will have to add a new file: `~/.bash_login` with the following content: |
| | 47 | |
| | 48 | export COMP_INTEL_ROOT="/nasa/intel/Compiler/2020.4.304/compilers_and_libraries_2020.4.304/linux" |
| | 49 | |
| | 50 | export ISSM_DIR="<ISSM_DIR>" |
| | 51 | }}} |
| | 52 | |
| | 53 | replacing `<ISSM_DIR>` with the path to your local copy of the repository. Run `source ~/.bashrc` to apply these changes to your current environment. |
| | 54 | |
| | 55 | NOTE: If your `.bashrc` is not loaded when you log in, you will have to add a new file, `~/.bash_login`, with the following content, |
| 53 | | '''Do NOT install mpich'''. We have to use the one provided by NAS. Pleiades will ''only'' be used to run the code, you will use your local machine for pre- and post- processing, you will never use Pleiades' copy of MATLAB. You can check out ISSM and install the following packages: |
| 54 | | - m1qn3 (`./install-linux.sh`) |
| 55 | | - autotools |
| 56 | | - that's it because we now use Pleiades' PETSc! |
| 57 | | |
| 58 | | For documentation on the Pleiades cluster, see here: http://www.nas.nasa.gov/hecc/support/kb/ |
| 59 | | |
| 60 | | You will need to run the following command before configuring ISSM: |
| 61 | | {{{ |
| 62 | | #!sh |
| | 64 | [https://www.nas.nasa.gov/hecc/support/kb Pleiades cluster documentation] |
| | 65 | |
| | 66 | '''Do NOT install `mpich`'''. We have to use the MPI implementation (MPT) provided on HECC. Pleiades will ''only'' be used to run solutions, you will use your local machine for pre- and post- processing, you will never use Pleiades' copy of MATLAB. |
| | 67 | |
| | 68 | For an installation of ISSM with basic capabilities, first install the following external packages, |
| | 69 | {{{ |
| | 70 | triangle install-linux.sh |
| | 71 | m1qn3 install-linux.sh |
| | 72 | semic install.sh |
| | 73 | }}} |
| | 74 | |
| | 75 | You will need to run the following before configuring ISSM, |
| | 76 | {{{ |
| 75 | | --prefix=$ISSM_DIR \ |
| 76 | | --with-wrappers=no \ |
| 77 | | --with-mpi-include="${MPI_ROOT}/include" \ |
| 78 | | --with-mpi-libflags="-L${MPI_ROOT}/lib -lmpi" \ |
| 79 | | --with-petsc-dir=${PETSC_DIR} \ |
| 80 | | --with-parmetis-dir=${PETSC_DIR} \ |
| 81 | | --with-metis-dir=${PETSC_DIR} \ |
| 82 | | --with-mumps-dir=${PETSC_DIR} \ |
| 83 | | --with-mkl-libflags="-L${MKLROOT}/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm" \ |
| 84 | | --with-m1qn3-dir="${ISSM_DIR}/externalpackages/m1qn3/install" \ |
| 85 | | --with-fortran-lib="-L${MKLROOT}/../compiler/lib/intel64_lin -lifcore -lifport -lgfortran" \ |
| 86 | | --enable-development |
| 87 | | }}} |
| | 88 | --prefix="${ISSM_DIR}" \ |
| | 89 | --enable-development \ |
| | 90 | --enable-standalone-libraries \ |
| | 91 | --with-wrappers=no \ |
| | 92 | --with-graphics-lib="/usr/lib64/libX11.so" \ |
| | 93 | --with-fortran-lib="-L${COMP_INTEL_ROOT}/compiler/lib/intel64_lin -lifcore -lifport -lgfortran" \ |
| | 94 | --with-mkl-libflags="-L${COMP_INTEL_ROOT}/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm" \ |
| | 95 | --with-mpi-include="/nasa/hpe/mpt/2.30_rhel810/include" \ |
| | 96 | --with-mpi-libflags="-L/nasa/hpe/mpt/2.30_rhel810/lib -lmpi" \ |
| | 97 | --with-blas-lapack-lib="-L${COMP_INTEL_ROOT}/mkl/lib/intel64 -lmkl_blas95_lp64 -lmkl_lapack95_lp64" \ |
| | 98 | --with-metis-dir="${PETSC_DIR}" \ |
| | 99 | --with-parmetis-dir="${PETSC_DIR}" \ |
| | 100 | --with-scalapack-lib="-L${COMP_INTEL_ROOT}/mkl/lib/intel64/libmkl_scalapack_lp64.so" \ |
| | 101 | --with-mumps-dir="${PETSC_DIR}" \ |
| | 102 | --with-petsc-dir="${PETSC_DIR}" \ |
| | 103 | --with-triangle-dir="${ISSM_DIR}/externalpackages/triangle/install" \ |
| | 104 | --with-m1qn3-dir="${ISSM_DIR}/externalpackages/m1qn3/install" \ |
| | 105 | --with-semic-dir="${ISSM_DIR}/externalpackages/semic/install" \ |
| | 106 | }}} |
| | 107 | |
| | 108 | NOTE: As with the version `comp-intel` module, the version of `mpi-hpe/mpt` will be updated occasionally. Update the path supplied to `--with-mpi-include` and `--mpi-libflags` accordingly. |
| | 109 | |
| | 110 | NOTE: Refer to `jenkins/pleiades-basic` for external packages and configuration updates that may not yet be listed here. |
| 91 | | You will not need to remake PETSc and m1qn3, as long as you made them using the Intel MPI libraries and compilers, as described above. |
| 92 | | |
| 93 | | Dakota will require that you have a python that is of version python2. The easiest way to do this is create a link for a `python` call to `/usr/bin/python2`. One way to do this is to add a path to a new bin folder in your `~/.bashrc`: |
| 94 | | |
| 95 | | {{{ |
| 96 | | export PATH="$PATH:${HOME}/bin" |
| 97 | | }}} |
| 98 | | |
| 99 | | Then, create a bin folder in your home directory (if you do not have one already). In your home directory, type `mkdir bin`. Then `cd bin`, and finally type `ln -s /usr/bin/python2 python`. |
| 100 | | |
| 101 | | Then, ''log out and log back in'' and build the following external packages: |
| 102 | | - gsl, install-pleiades.sh |
| 103 | | - boost, install-1.55-pleiades.sh |
| 104 | | - dakota, install-6.2-pleiades_toss4.sh |
| 105 | | |
| 106 | | Finally, you will need to use the following configuration script (i.e. adding the "with" lines for dakota and boost): |
| 107 | | |
| 108 | | {{{ |
| 109 | | #!sh |
| | 114 | For an installation of ISSM with Dakota, first install the following external packages, |
| | 115 | {{{ |
| | 116 | gsl install-pleiades.sh |
| | 117 | boost install-1.7-linux.sh |
| | 118 | dakota install-6.2-pleiades.sh |
| | 119 | chaco install-linux.sh |
| | 120 | triangle install-linux.sh |
| | 121 | m1qn3 install-linux.sh |
| | 122 | semic install.sh |
| | 123 | }}} |
| | 124 | |
| | 125 | Use the following configuration script for ISSM (adapt to your needs), |
| | 126 | {{{ |
| | 127 | #!sh |
| | 128 | export CFLAGS="-O3" |
| | 129 | export CXXFLAGS="-O3 -std=c++11" |
| | 130 | |
| 111 | | --prefix=$ISSM_DIR \ |
| 112 | | --enable-standalone-libraries \ |
| 113 | | --with-wrappers=no \ |
| 114 | | --with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \ |
| 115 | | --with-metis-dir=$PETSC_ROOT \ |
| 116 | | --with-petsc-dir=$PETSC_ROOT \ |
| 117 | | --with-scalapack-lib="-L/nasa/intel/Compiler/2018.3.222/compilers_and_libraries_2018.3.222/linux/mkl/lib/intel64/libmkl_scalapack_lp64.so" \ |
| 118 | | --with-boost-dir=$ISSM_DIR/externalpackages/boost/install \ |
| 119 | | --with-dakota-dir=$ISSM_DIR/externalpackages/dakota/install \ |
| 120 | | --with-mpi-include=" " \ |
| 121 | | --with-mpi-libflags=" -lmpi" \ |
| 122 | | --with-mkl-libflags="-L/nasa/intel/Compiler/2018.3.222/compilers_and_libraries_2018.3.222/linux/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm" \ |
| 123 | | --with-mumps-dir=$PETSC_ROOT \ |
| 124 | | --with-fortran-lib="-L/nasa/intel/Compiler/2018.3.222/compilers_and_libraries_2018.3.222/linux/compiler/lib/intel64_lin/ -lifcore -lifport -lgfortran" \ |
| 125 | | --with-cxxoptflags="-O3 " \ |
| 126 | | --with-vendor="intel-pleiades-mpi" \ |
| 127 | | --enable-development |
| 128 | | }}} |
| 129 | | |
| 130 | | Remember, you will need to run the following command before configuring ISSM: |
| 131 | | |
| 132 | | {{{ |
| 133 | | cd $ISSM_DIR |
| 134 | | autoreconf -ivf |
| 135 | | }}} |
| 136 | | |
| 137 | | Note, if you would like to use the python 3 version that loads in the environment, you will need to call `python3` to do so, as long as the python alias is set to python2. |
| 138 | | |
| 139 | | NOTE: Refer to jenkins/pleiades-dakota for external packages and configuration updates that may not yet be listed here. |
| | 132 | --prefix="${ISSM_DIR}" \ |
| | 133 | --enable-development \ |
| | 134 | --enable-standalone-libraries \ |
| | 135 | --with-wrappers=no \ |
| | 136 | --with-graphics-lib="/usr/lib64/libX11.so" \ |
| | 137 | --with-fortran-lib="-L${COMP_INTEL_ROOT}/compiler/lib/intel64_lin -lifcore -lifport -lgfortran" \ |
| | 138 | --with-mkl-libflags="-L${COMP_INTEL_ROOT}/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm" \ |
| | 139 | --with-mpi-include="${COMP_INTEL_ROOT}/mpi/intel64/include" \ |
| | 140 | --with-mpi-libflags="-lmpi" \ |
| | 141 | --with-blas-lapack-lib="-L${COMP_INTEL_ROOT}/mkl/lib/intel64 -lmkl_blas95_lp64 -lmkl_lapack95_lp64" \ |
| | 142 | --with-metis-dir="${PETSC_DIR}" \ |
| | 143 | --with-parmetis-dir="${PETSC_DIR}" \ |
| | 144 | --with-mumps-dir="${PETSC_DIR}" \ |
| | 145 | --with-scalapack-lib="-L${COMP_INTEL_ROOT}/mkl/lib/intel64/libmkl_scalapack_lp64.so" \ |
| | 146 | --with-petsc-dir="${PETSC_DIR}" \ |
| | 147 | --with-gsl-dir="${ISSM_DIR}/externalpackages/gsl/install" \ |
| | 148 | --with-boost-dir="${ISSM_DIR}/externalpackages/boost/install" \ |
| | 149 | --with-dakota-dir="${ISSM_DIR}/externalpackages/dakota/install" \ |
| | 150 | --with-chaco-dir="${ISSM_DIR}/externalpackages/chaco/install" \ |
| | 151 | --with-triangle-dir="${ISSM_DIR}/externalpackages/triangle/install" \ |
| | 152 | --with-m1qn3-dir="${ISSM_DIR}/externalpackages/m1qn3/install" \ |
| | 153 | --with-semic-dir="${ISSM_DIR}/externalpackages/semic/install" \ |
| | 154 | }}} |
| | 155 | |
| | 156 | NOTE: As with the version `comp-intel` module, the version of `mpi-hpe/mpt` will be updated occasionally. Update the path supplied to `--with-mpi-include` and `--mpi-libflags` accordingly. |
| | 157 | |
| | 158 | NOTE: Refer to `jenkins/pleiades-dakota` for external packages and configuration updates that may not yet be listed here. |
| 224 | | --prefix=$ISSM_DIR \ |
| 225 | | --with-wrappers=no \ |
| 226 | | --without-Love \ |
| 227 | | --without-Sealevelchange \ |
| 228 | | --without-kriging \ |
| 229 | | --with-mpi-include="${MPI_ROOT}/include" \ |
| 230 | | --with-mpi-libflags="-L${MPI_ROOT}/lib -lmpi" \ |
| 231 | | --with-parmetis-dir=${PETSC_DIR} \ |
| 232 | | --with-metis-dir=${PETSC_DIR} \ |
| 233 | | --with-mumps-dir=${PETSC_DIR} \ |
| 234 | | --with-mkl-libflags="-L${MKLROOT}/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_scalapack_lp64 -lmkl_blacs_sgimpt_lp64 -lmkl_core -lpthread -lm" \ |
| 235 | | --with-m1qn3-dir="${ISSM_DIR}/externalpackages/m1qn3/install" \ |
| 236 | | --with-codipack-dir="$ISSM_DIR/externalpackages/codipack/install" \ |
| 237 | | --with-medipack-dir="$ISSM_DIR/externalpackages/medipack/install" \ |
| 238 | | --enable-tape-alloc \ |
| 239 | | --with-fortran-lib="-L${MKLROOT}/../compiler/lib/intel64_lin -lifcore -lifport -lgfortran" \ |
| 240 | | --enable-development |
| | 234 | --prefix=$ISSM_DIR \ |
| | 235 | --with-wrappers=no \ |
| | 236 | --without-Love \ |
| | 237 | --without-Sealevelchange \ |
| | 238 | --without-kriging \ |
| | 239 | --with-mpi-include="${MPI_ROOT}/include" \ |
| | 240 | --with-mpi-libflags="-L${MPI_ROOT}/lib -lmpi" \ |
| | 241 | --with-parmetis-dir=${PETSC_DIR} \ |
| | 242 | --with-metis-dir=${PETSC_DIR} \ |
| | 243 | --with-mumps-dir=${PETSC_DIR} \ |
| | 244 | --with-mkl-libflags="-L${MKLROOT}/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_scalapack_lp64 -lmkl_blacs_sgimpt_lp64 -lmkl_core -lpthread -lm" \ |
| | 245 | --with-m1qn3-dir="${ISSM_DIR}/externalpackages/m1qn3/install" \ |
| | 246 | --with-codipack-dir="$ISSM_DIR/externalpackages/codipack/install" \ |
| | 247 | --with-medipack-dir="$ISSM_DIR/externalpackages/medipack/install" \ |
| | 248 | --enable-tape-alloc \ |
| | 249 | --with-fortran-lib="-L${MKLROOT}/../compiler/lib/intel64_lin -lifcore -lifport -lgfortran" \ |
| | 250 | --enable-development |