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 |