[[PageOutline]] == Important note about storage == Totten has several drives. Your home directory is on a small drive (6 TB), so make sure to work on the big RAID system `/totten_1` that has 83 TB. You will probably need to create a directory: {{{ #!sh cd /totten_1 mkdir YOURUSERNAME }}} and replace `YOURUSERNAME` by your totten username. This is were you should install ISSM and create your "projects" directory. == ssh configuration == You can add the following lines to `~/.ssh/config` on your local machine: {{{ #!sh Host totten totten.dartmouth.edu HostName totten.dartmouth.edu User YOURUSERNAME }}} and replace `YOURUSERNAME ` by your totten username. Once this is done, you can ssh totten by simply doing: {{{ #!sh ssh totten }}} == Password-less ssh == Once you have the account, you can setup a public key authentification in order to avoid having to input your password for each run. You need to have a SSH public/private key pair. If you do not, you can create a SSH public/private key pair by typing the following command and following the prompts (no passphrase necessary): {{{ #!sh $your_localhost% ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/Users/username/.ssh/id_rsa):RETURN Enter passphrase (empty for no passphrase):RETURN Enter same passphrase again:RETURN Your identification has been saved in /Users/username/.ssh/id_rsa. Your public key has been saved in /Users/username/.ssh/id_rsa.pub. }}} Two files were created: your private key `/Users/username/.ssh/id_rsa`, and the public key `/Users/username/.ssh/id_rsa.pub`. The private key is read-only and only for you, it is used to decrypt all correspondence encrypted with the public key. The contents of the public key need to be copied to `~/.ssh/authorized_keys` on your totten account: {{{ #!sh $your_localhost%scp ~/.ssh/id_rsa.pub username@your_remosthost:~ }}} Now on '''totten''', copy the content of id_rsa.pub: {{{ #!sh $your_remosthost%cat ~/id_rsa.pub >> ~/.ssh/authorized_keys $your_remosthost%rm ~/id_rsa.pub }}} If Totten complains that about `/home/mmorligh/.ssh/authorized_keys: No such file or directory`, you may need to create an .ssh directory first. == Environment == On totten, add the following lines to `~/.bashrc`: {{{ #!sh export ISSM_DIR=PATHTOTRUNK source $ISSM_DIR/etc/environment.sh #MATLAB alias alias ma='LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6:/usr/lib/x86_64-linux-gnu/libgfortran.so.5:$ISSM_DIR/externalpackages/petsc/install/lib/libmpi.so:$ISSM_DIR/externalpackages/petsc/install/lib/libmpifort.so /usr/local/MATLAB/R2023b/bin/matlab -nodesktop -nosplash -r "addpath $ISSM_DIR/src/m/dev; devpath;"' }}} Feel free to remove anything that you may have by default in this file. ''Log out and log back in'' to apply this change. == Installing ISSM on totten == You can follow the instructions on the website [http://issm.jpl.nasa.gov/download/unix/]. You will need to install the following packages: * autotools * petsc (take the latest version 3.20 or later) * triangle * m1qn3 Use the following configuration script (adapt to your needs): {{{ #!sh ./configure \ --prefix=$ISSM_DIR \ --without-kml \ --with-matlab-dir="/usr/local/MATLAB/R2021b" \ --with-triangle-dir="$ISSM_DIR/externalpackages/triangle/install" \ --with-metis-dir="$ISSM_DIR/externalpackages/petsc/install" \ --with-petsc-dir="$ISSM_DIR/externalpackages/petsc/install" \ --with-mpi-include="$ISSM_DIR/externalpackages/petsc/install/include" \ --with-mpi-libflags="-L$ISSM_DIR/externalpackages/petsc/install/lib -lmpi -lmpifort"\ --with-blas-lapack-dir="$ISSM_DIR/externalpackages/petsc/install" \ --with-scalapack-dir="$ISSM_DIR/externalpackages/petsc/install" \ --with-mumps-dir="$ISSM_DIR/externalpackages/petsc/install/" \ --with-m1qn3-dir="$ISSM_DIR/externalpackages/m1qn3/install" \ --with-fortran-lib="-L/usr/lib/x86_64-linux-gnu -lgfortran" \ --with-numthreads=32 \ --enable-development \ --enable-debugging }}} == Run Jupyter Notebook on totten == You can run Jupyter Notebook **on totten** (after `ssh` to the remote server) with the following command: {{{ #!sh jupyter notebook --no-browser --port=8080 }}} Keep this terminal alive, where you will need the token to access the Notebook. To access your notebook via the **browser from your local machine**, you just need to link the totten's port `8080` to your `localhost:8080` by the command (on your local machine) {{{ #!sh ssh -L 8080:localhost:8080 yourname@totten.dartmouth.edu }}} After this, open a web browser on your local machine, and access the Jupyter Notebook from ` http://localhost:8080/`. You might be asked to enter the token, which you can find in the terminal you kept alive for Jupyter Notebook. [wiki:kubeflow Install custom image on kubeflow] == Installing ISSM with CoDiPack (AD) == You will need to install the following *additional* packages: * codipack * medipack Use the following configuration script (adapt to your needs, make sure to NOT include --with-petsc-dir): {{{ #!sh ./configure \ --prefix=$ISSM_DIR\ --without-kriging \ --without-kml \ --without-Love \ --without-Sealevelchange \ --with-matlab-dir="/usr/local/MATLAB/R2021b" \ --with-mpi-include=$ISSM_DIR/externalpackages/petsc/install/include \ --with-mpi-libflags="-L$ISSM_DIR/externalpackages/petsc/install/lib -lmpi -lmpifort"\ --with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \ --with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install/ \ --with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install \ --with-scalapack-dir=$ISSM_DIR/externalpackages/petsc/install/ \ --with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \ --with-m1qn3-dir="$ISSM_DIR/externalpackages/m1qn3/install" \ --with-codipack-dir="$ISSM_DIR/externalpackages/codipack/install" \ --with-medipack-dir="$ISSM_DIR/externalpackages/medipack/install" \ --with-cxxoptflags="-g -O3 -fPIC -std=c++11 -DCODI_ForcedInlines" \ --with-numthreads=32 \ --enable-tape-alloc \ --enable-development \ --enable-debugging }}}