Logiciels pour usagers sur les serveurs : Différence entre versions
m (→les modules d'environnement) |
m (→python) |
||
(67 révisions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 1: | Ligne 1: | ||
− | == systèmes supportés == | + | == systèmes supportés / supported systems== |
snow zwack robert glacier (et beaucoup de postes de travail Linux) | snow zwack robert glacier (et beaucoup de postes de travail Linux) | ||
− | == | + | == setup == |
+ | suggestion | ||
+ | touch ${HOME}/.no_admin_xtra # for a consistent environment across machines | ||
+ | mv ${HOME}/.bashrc ${HOME}/.bashrc.old | ||
+ | mv ${HOME}/.bash_profile ${HOME}/.bash_profile.old | ||
− | + | == .profile (base) == | |
+ | suggestion (bash) | ||
+ | type module 2>/dev/null 1>/dev/null || . /etc/profile | ||
+ | module load setup/ECssm_002 | ||
+ | |||
+ | == les modules d'environnement / GNU environment modules == | ||
+ | |||
+ | [https://alliance.uqam.ca/wikiscta/index.php/Accessing_the_Software_on_UQAM_servers GNU environment modules] | ||
+ | |||
+ | [https://modules.readthedocs.io/en/latest environment modules documentation (3.2 on servers, 4.1 on workstations)] | ||
+ | |||
+ | == utilitaires variés == | ||
+ | |||
+ | module load utils/misc | ||
+ | ccmake, cmake | ||
+ | patchelf | ||
== netcdf == | == netcdf == | ||
Ligne 20: | Ligne 39: | ||
module load python2/miniconda2 # conda + python 2.7 /sca/compilers_and_tools/python/miniconda2 | module load python2/miniconda2 # conda + python 2.7 /sca/compilers_and_tools/python/miniconda2 | ||
module load python3/miniconda3 # conda + python 3.7 /sca/compilers_and_tools/python/miniconda3 | module load python3/miniconda3 # conda + python 3.7 /sca/compilers_and_tools/python/miniconda3 | ||
+ | module load python3/miniforge3 # conda + python 3.9 /sca/compilers_and_tools/python/miniforge3 | ||
− | environnements disponibles avec python2 | + | pour lister les environnements disponibles |
+ | conda env list | ||
+ | conda info --envs | ||
+ | |||
+ | Pour lister les paquets qui font partie d'un environnent exécutez: | ||
+ | conda list -n ''nom_du_env'' | ||
+ | |||
+ | disponible avec '''python2''' (non recommandé pour le futur) (gelé dans son état actuel) | ||
source activate jupyter # jupyter notebooks | source activate jupyter # jupyter notebooks | ||
− | source activate | + | source activate mysql2 # mysql-connector |
− | |||
source activate pynngl2 # NCAR Graphics (PyNGL et NCL) | source activate pynngl2 # NCAR Graphics (PyNGL et NCL) | ||
source activate spyder # environnement spyder | source activate spyder # environnement spyder | ||
+ | source activate soup # beautifulsoup | ||
+ | module load development/python-rpn # interface python pour rmnlib - [https://python-rpn.readthedocs.io/en/latest Documentation] | ||
− | + | disponible avec '''python3''' (miniconda3) | |
− | source activate jupyter # jupyter notebooks | + | source activate cdo # cdo toolkit |
+ | source activate jupyter # jupyter notebooks (sera remplacé par base_plus) | ||
+ | source activate jupyter_plus # jupyter notebooks + '''basic packages''' (recommandé plutôt que jupyter) | ||
+ | # sera remplacé par base_plus | ||
+ | source activate jupyter_sql # jupyter notebooks + mysql-connector | ||
+ | # sera remplacé par base_plus | ||
+ | source activate base_plus # le successeur des environnements jupyter... + xarray/dask | ||
+ | source activate ferret # pyferret | ||
source activate spyder # environnement spyder | source activate spyder # environnement spyder | ||
+ | source activate mysql3 # mysql-connector | ||
+ | source activate ldap # ldap utilities + mysql-connector | ||
source activate pynngl3 # NCAR Graphics (PyNGL et NCL) | source activate pynngl3 # NCAR Graphics (PyNGL et NCL) | ||
+ | source activate magics # magics (ECMWF) | ||
+ | source activate soup # beautifulsoup | ||
+ | module load python3/python-rpn # interface python pour rmnlib - [https://python-rpn.readthedocs.io/en/latest Documentation] | ||
+ | module load python3/outils-divers # functions pour les grilles RPN | ||
+ | module load python3/demos # exemples de scripts pour lire/imprimer des fichier RPN | ||
+ | |||
+ | disponible avec '''python3''' (miniforge3) | ||
+ | source activate base_plus # le successeur des environnements jupyter... + xarray/dask | ||
+ | source activate ferret # pyferret | ||
+ | |||
+ | création et activation d'un environnement personnel (dans ~/.conda)<br> | ||
+ | NOTE: <br> | ||
+ | les packages installés avec pip (qui aboutissent souvent dans ~/.local)<br> | ||
+ | peuvent entrer en conflit avec les packages installés dans les environnements conda | ||
+ | conda create -n mon_environnement | ||
+ | source activate mon_environnement | ||
+ | #cd ~/.conda | ||
+ | #conda install package_name | ||
déchargement d'un environnement | déchargement d'un environnement | ||
conda deactivate # sortir d'un environnement | conda deactivate # sortir d'un environnement | ||
− | + | références utiles | |
− | |||
+ | [http://www.ncl.ucar.edu NCAR graphics (ncl)] | ||
+ | |||
+ | [https://www.pyngl.ucar.edu NCAR graphics (PyNGL)] | ||
+ | |||
+ | [https://jupyter.readthedocs.io/en/latest jupyter (notebook)] | ||
+ | |||
+ | [https://www.crummy.com/software/BeautifulSoup beautifulsoup] | ||
+ | |||
+ | [https://confluence.ecmwf.int/display/MAGP/Magics Magics(ECMWF)] | ||
+ | |||
+ | [https://www.spyder-ide.org spyder (environnement de développement python)] | ||
+ | |||
+ | jupiter, notebook et "browser" sur le serveur ('''NON RECOMMANDÉ''') | ||
+ | module load python3 # ou python2 | ||
+ | module load utils/web # pour un firefox plus jeune | ||
+ | source activate jupyter | ||
+ | jupyter notebook | ||
+ | |||
+ | jupyter à distance, notebook sur le serveur mais "browser" local sur poste de travail à l'UQÀM ou ailleurs ('''RECOMMANDÉ''') | ||
+ | [https://wikienseignement.uqam.ca/display/EDDSDLTEL/Sous+Windows (information plus spécifique pour MS Windows)] | ||
+ | |||
+ | ceci demande '''2 FENÊTRES(SESSIONS)''' | ||
+ | |||
+ | '''ÉTAPE no 0''' : | ||
+ | |||
+ | # OPTION no 1 : à partir de mon poste de travail a l'UQÀM ('''FENÊTRE 1''') | ||
+ | # replacer user par mon nom d'usager sur les serveurs de l'UQÀM | ||
+ | ssh user@le_serveur # snow/glacier/... | ||
+ | |||
+ | # OPTION no 2 : à partir d'un ordinateur à l'extérieur de l'UQÀM ('''FENÊTRE 1''') | ||
+ | # replacer user par mon nom d'usager sur les serveurs de l'UQÀM | ||
+ | ssh user@st0.sca.uqam.ca | ||
+ | ssh user@le_serveur # snow/glacier/... | ||
+ | |||
+ | |||
+ | '''ÉTAPE no 1''' : ('''FENÊTRE 1''') | ||
+ | |||
+ | # sur le serveur : ('''FENÊTRE 1''') | ||
+ | |||
+ | module load python3 # ou python2 | ||
+ | source activate jupyter | ||
+ | jupyter notebook --no-browser # pas de démarrage de fureteur (browser) sur le serveur | ||
+ | |||
+ | # il me revient une ligne du genre | ||
+ | http://localhost:8891/?token=d2739f7208d5085028c71437218cee328858aac3074c7b6e | ||
+ | qui va servir plus loin | ||
+ | |||
+ | '''ÉTAPE no 2''' : ('''FENÊTRE 2''') | ||
+ | |||
+ | # OPTION no 1 : à partir de mon poste de travail a l'UQÀM ('''FENÊTRE 2''') | ||
+ | |||
+ | # remplacer dans toute la ligne qui suit 8891 par le chiffre après localhost: dans http://..... | ||
+ | ssh -L8891:localhost:8891 le_serveur | ||
+ | |||
+ | # OPTION no 2 : à partir d'un ordinateur à l'extérieur de l'UQÀM ('''FENÊTRE 2''') | ||
+ | # ( remplacer dans ce qui suit 8891 par le chiffre après localhost: dans http://.....) | ||
+ | ssh -L8891:localhost:8891 user@st0.sca.uqam.ca # replacer user par mon nom d'usager sur les serveurs de l'UQÀM | ||
+ | ssh -L8891:localhost:8891 le_serveur | ||
+ | |||
+ | # ou plus direct, en une seule commande (fenêtre 2) (script d'automatisation laissé à l'imagination de l'usager) | ||
+ | # ( remplacer dans ce qui suit 8891 par le chiffre après localhost: dans http://.....) | ||
+ | ssh -t -L8891:localhost:8891 user@st0.sca.uqam.ca ssh -t -L8891:localhost:8891 le_serveur | ||
+ | |||
+ | '''ÉTAPE no 3''' : ('''SUR MA MACHINE''') | ||
+ | |||
+ | # prendre un nouvel onglet dans le "browser" local (firefox/chrome/...) | ||
+ | # (utiliser la référencde http obtenue à l'ÉTAPE no 1) | ||
+ | # aller a http://localhost:8891/?token=d2739f7208d5085028c71437218cee328858aac3074c7b6e | ||
+ | # et voila ! je travaille à distance sur le serveur comme si tout se passait sur le serveur | ||
+ | |||
+ | python-rpn | ||
+ | - il faut charger python 2 ou python 3 avant de charger development/python-rpn | ||
+ | (message d'erreur sinon) | ||
+ | - en principe, python-rpn est compatible avec python 2.7 ou python 3 | ||
+ | - il est recommandé d'activer l'environnement jupyter (ou autre) pour pouvoir utiliser python-rpn car il manque | ||
+ | de nombreux "packages" utilisés par python-rpn dans la base python | ||
+ | |||
+ | == compilateurs et OpenMPI / compilers and OpenMPI== | ||
+ | Intel (icc/ifort), GNU (gcc/gfortran), llvm (clang/flang), aocc(clang/flang sauce AMD) | ||
+ | Intel | ||
module load compiler/intel-16 # icc/ifort version 16 | module load compiler/intel-16 # icc/ifort version 16 | ||
module load openmpi/2.1.5-intel-16.0.1 # + OpenMPI 2.1 | module load openmpi/2.1.5-intel-16.0.1 # + OpenMPI 2.1 | ||
Ligne 47: | Ligne 181: | ||
module load compiler/intel-19 # icc/ifort version 19 | module load compiler/intel-19 # icc/ifort version 19 | ||
module load openmpi/2.1.5-intel-19.0 # + OpenMPI 2.1 | module load openmpi/2.1.5-intel-19.0 # + OpenMPI 2.1 | ||
− | + | GNU | |
module load compiler/gcc-7.3 # gcc/gfortran | module load compiler/gcc-7.3 # gcc/gfortran | ||
module load openmpi/2.1.5-gcc-7.3 # + OpenMPI 2.1 | module load openmpi/2.1.5-gcc-7.3 # + OpenMPI 2.1 | ||
− | + | LLVM | |
− | module load compiler/llvm6 # clang/flang version 6 | + | module load compiler/llvm6 # clang/flang version 6 (obsolète) |
+ | module load openmpi/2.1.5-llvm # + OpenMPI 2.1 | ||
+ | AOCC | ||
+ | module load compiler/aocc # clang/flang version 9 (amélioré par AMD) | ||
+ | module load openmpi/2.1.5-aocc # + OpenMPI 2.1 | ||
+ | |||
+ | == FLEXPART == | ||
+ | # load basic software needed | ||
+ | module load compiler/gcc-7.3 | ||
+ | module load openmpi/2.1.5-gcc-7.3 | ||
+ | module load utils/eccodes-gcc7.3 | ||
+ | module load development/netcdf-c | ||
+ | module load development/netcdf-f/gfortran | ||
+ | # cd where flexpart source is | ||
+ | # vi makefile | ||
+ | make clean | ||
+ | # then | ||
+ | make serial # serial version | ||
+ | # or | ||
+ | make mpi # parallel version | ||
+ | == GOAS (Gem On A Stick) == | ||
+ | ===Clone and checkout latest GOAS version=== | ||
+ | git clone https://gitlab.com/eccc/gem/gem.git | ||
+ | cd gem | ||
+ | #git checkout -b b_5.1.0-rc5 5.1.0-rc5 | ||
+ | git checkout -b b_5.1.0-rc6 5.1.0-rc6 # rc7 latest as of 2021/03/17 | ||
+ | |||
+ | ===Download database=== | ||
+ | download-dbase.sh . | ||
+ | |||
+ | ===Create work and 'build' directory for object files and excecutables=== | ||
+ | In this directory will be your: | ||
+ | * object files and excecutables, | ||
+ | * model scripts, | ||
+ | * example config files, | ||
+ | * and you will execute your simulation from here | ||
+ | mkdir -p /path/to/my/work/directory | ||
+ | export MY_WORK_DIR=/path/to/my/work/directory | ||
+ | mkdir build | ||
+ | cd build | ||
+ | |||
+ | ===Set compiler version and compile=== | ||
+ | '''• At UQAM'''<br> | ||
+ | If you want to use the '''Intel compiler''' set: | ||
+ | module load openmpi/2.1.5-intel-19.0-mkl | ||
+ | module load utils/misc # to get an up to date version of cmake | ||
+ | cmake -DCOMPILER=intel -DCMAKE_VERBOSE_MAKEFILE=ON -DWORK_PREFIX=${MY_WORK_DIR} ../project | ||
+ | |||
+ | If you want to use the '''GNU compiler''' (gcc/gfortran) set: | ||
+ | module load openmpi/3.1.5-gcc-8.3 | ||
+ | cmake -DCOMPILER=gnu -DCMAKE_VERBOSE_MAKEFILE=ON -DWORK_PREFIX=${MY_WORK_DIR} ../project | ||
+ | |||
+ | '''• On Niagara using the native environment (recommended)''' | ||
+ | module load intel/2019u4 openmpi/4.0.1 fftw/3.3.8 cmake | ||
+ | cmake -DCOMPILER=intel -DCMAKE_VERBOSE_MAKEFILE=ON -DWORK_PREFIX=${MY_WORK_DIR} ../project | ||
+ | |||
+ | '''• On Niagara using the common Environment''' | ||
+ | module load CCEnv | ||
+ | module load nixpkgs/16.09 | ||
+ | module load intel/2019.3 | ||
+ | module load openmpi | ||
+ | module load cmake/3.16.3 | ||
+ | module load fftw-mpi | ||
+ | cmake -DCOMPILER=intel -DCMAKE_VERBOSE_MAKEFILE=ON -DWORK_PREFIX=${MY_WORK_DIR} ../project | ||
+ | |||
+ | '''• On Beluga''' | ||
+ | module load intel/2019.3 | ||
+ | module load openmpi | ||
+ | module load cmake/3.16.3 | ||
+ | module load fftw-mpi | ||
+ | cmake -DCOMPILER=intel -DCMAKE_VERBOSE_MAKEFILE=ON -DWORK_PREFIX=${MY_WORK_DIR} ../project | ||
+ | |||
+ | ===Create executable=== | ||
+ | make -j8 work | ||
+ | |||
+ | ===Run the model=== | ||
+ | cd ${MY_WORK_DIR} | ||
+ | cd work-... # change into work directory, i.e. work-linux26-x86-64-intel-19.0.3.199 | ||
+ | Here you will find several example config files under 'configurations'. If you want to run, for example, a global YinYang simulation execute: | ||
+ | ./runprep -dircfg configurations/GY_cfgs | ||
+ | ./runmod -dircfg configurations/GY_cfgs -ptopo 2x2x1 |
Version actuelle datée du 11 de novembre 2021 à 13:24
Matières
systèmes supportés / supported systems
snow zwack robert glacier (et beaucoup de postes de travail Linux)
setup
suggestion
touch ${HOME}/.no_admin_xtra # for a consistent environment across machines mv ${HOME}/.bashrc ${HOME}/.bashrc.old mv ${HOME}/.bash_profile ${HOME}/.bash_profile.old
.profile (base)
suggestion (bash)
type module 2>/dev/null 1>/dev/null || . /etc/profile module load setup/ECssm_002
les modules d'environnement / GNU environment modules
environment modules documentation (3.2 on servers, 4.1 on workstations)
utilitaires variés
module load utils/misc ccmake, cmake patchelf
netcdf
outils netcdf
module load utils/cdo ou module load utils/ncview ou module load utils/netcdf
python
chargement:
module load python2/miniconda2 # conda + python 2.7 /sca/compilers_and_tools/python/miniconda2 module load python3/miniconda3 # conda + python 3.7 /sca/compilers_and_tools/python/miniconda3 module load python3/miniforge3 # conda + python 3.9 /sca/compilers_and_tools/python/miniforge3
pour lister les environnements disponibles
conda env list conda info --envs
Pour lister les paquets qui font partie d'un environnent exécutez:
conda list -n nom_du_env
disponible avec python2 (non recommandé pour le futur) (gelé dans son état actuel)
source activate jupyter # jupyter notebooks source activate mysql2 # mysql-connector source activate pynngl2 # NCAR Graphics (PyNGL et NCL) source activate spyder # environnement spyder source activate soup # beautifulsoup module load development/python-rpn # interface python pour rmnlib - Documentation
disponible avec python3 (miniconda3)
source activate cdo # cdo toolkit source activate jupyter # jupyter notebooks (sera remplacé par base_plus) source activate jupyter_plus # jupyter notebooks + basic packages (recommandé plutôt que jupyter) # sera remplacé par base_plus source activate jupyter_sql # jupyter notebooks + mysql-connector # sera remplacé par base_plus source activate base_plus # le successeur des environnements jupyter... + xarray/dask source activate ferret # pyferret source activate spyder # environnement spyder source activate mysql3 # mysql-connector source activate ldap # ldap utilities + mysql-connector source activate pynngl3 # NCAR Graphics (PyNGL et NCL) source activate magics # magics (ECMWF) source activate soup # beautifulsoup module load python3/python-rpn # interface python pour rmnlib - Documentation module load python3/outils-divers # functions pour les grilles RPN module load python3/demos # exemples de scripts pour lire/imprimer des fichier RPN
disponible avec python3 (miniforge3)
source activate base_plus # le successeur des environnements jupyter... + xarray/dask source activate ferret # pyferret
création et activation d'un environnement personnel (dans ~/.conda)
NOTE:
les packages installés avec pip (qui aboutissent souvent dans ~/.local)
peuvent entrer en conflit avec les packages installés dans les environnements conda
conda create -n mon_environnement source activate mon_environnement #cd ~/.conda #conda install package_name
déchargement d'un environnement
conda deactivate # sortir d'un environnement
références utiles
spyder (environnement de développement python)
jupiter, notebook et "browser" sur le serveur (NON RECOMMANDÉ)
module load python3 # ou python2 module load utils/web # pour un firefox plus jeune source activate jupyter jupyter notebook
jupyter à distance, notebook sur le serveur mais "browser" local sur poste de travail à l'UQÀM ou ailleurs (RECOMMANDÉ)
(information plus spécifique pour MS Windows)
ceci demande 2 FENÊTRES(SESSIONS) ÉTAPE no 0 :
# OPTION no 1 : à partir de mon poste de travail a l'UQÀM (FENÊTRE 1) # replacer user par mon nom d'usager sur les serveurs de l'UQÀM ssh user@le_serveur # snow/glacier/... # OPTION no 2 : à partir d'un ordinateur à l'extérieur de l'UQÀM (FENÊTRE 1) # replacer user par mon nom d'usager sur les serveurs de l'UQÀM ssh user@st0.sca.uqam.ca ssh user@le_serveur # snow/glacier/...
ÉTAPE no 1 : (FENÊTRE 1)
# sur le serveur : (FENÊTRE 1) module load python3 # ou python2 source activate jupyter jupyter notebook --no-browser # pas de démarrage de fureteur (browser) sur le serveur # il me revient une ligne du genre http://localhost:8891/?token=d2739f7208d5085028c71437218cee328858aac3074c7b6e qui va servir plus loin
ÉTAPE no 2 : (FENÊTRE 2)
# OPTION no 1 : à partir de mon poste de travail a l'UQÀM (FENÊTRE 2) # remplacer dans toute la ligne qui suit 8891 par le chiffre après localhost: dans http://..... ssh -L8891:localhost:8891 le_serveur # OPTION no 2 : à partir d'un ordinateur à l'extérieur de l'UQÀM (FENÊTRE 2) # ( remplacer dans ce qui suit 8891 par le chiffre après localhost: dans http://.....) ssh -L8891:localhost:8891 user@st0.sca.uqam.ca # replacer user par mon nom d'usager sur les serveurs de l'UQÀM ssh -L8891:localhost:8891 le_serveur # ou plus direct, en une seule commande (fenêtre 2) (script d'automatisation laissé à l'imagination de l'usager) # ( remplacer dans ce qui suit 8891 par le chiffre après localhost: dans http://.....) ssh -t -L8891:localhost:8891 user@st0.sca.uqam.ca ssh -t -L8891:localhost:8891 le_serveur
ÉTAPE no 3 : (SUR MA MACHINE)
# prendre un nouvel onglet dans le "browser" local (firefox/chrome/...) # (utiliser la référencde http obtenue à l'ÉTAPE no 1) # aller a http://localhost:8891/?token=d2739f7208d5085028c71437218cee328858aac3074c7b6e # et voila ! je travaille à distance sur le serveur comme si tout se passait sur le serveur
python-rpn
- il faut charger python 2 ou python 3 avant de charger development/python-rpn (message d'erreur sinon) - en principe, python-rpn est compatible avec python 2.7 ou python 3 - il est recommandé d'activer l'environnement jupyter (ou autre) pour pouvoir utiliser python-rpn car il manque de nombreux "packages" utilisés par python-rpn dans la base python
compilateurs et OpenMPI / compilers and OpenMPI
Intel (icc/ifort), GNU (gcc/gfortran), llvm (clang/flang), aocc(clang/flang sauce AMD)
Intel module load compiler/intel-16 # icc/ifort version 16 module load openmpi/2.1.5-intel-16.0.1 # + OpenMPI 2.1 module load compiler/intel-18 # icc/ifort version 18 module load openmpi/2.1.5-intel-18.0.5 # + OpenMPI 2.1 module load compiler/intel-19 # icc/ifort version 19 module load openmpi/2.1.5-intel-19.0 # + OpenMPI 2.1 GNU module load compiler/gcc-7.3 # gcc/gfortran module load openmpi/2.1.5-gcc-7.3 # + OpenMPI 2.1 LLVM module load compiler/llvm6 # clang/flang version 6 (obsolète) module load openmpi/2.1.5-llvm # + OpenMPI 2.1 AOCC module load compiler/aocc # clang/flang version 9 (amélioré par AMD) module load openmpi/2.1.5-aocc # + OpenMPI 2.1
FLEXPART
# load basic software needed module load compiler/gcc-7.3 module load openmpi/2.1.5-gcc-7.3 module load utils/eccodes-gcc7.3 module load development/netcdf-c module load development/netcdf-f/gfortran # cd where flexpart source is # vi makefile make clean # then make serial # serial version # or make mpi # parallel version
GOAS (Gem On A Stick)
Clone and checkout latest GOAS version
git clone https://gitlab.com/eccc/gem/gem.git cd gem #git checkout -b b_5.1.0-rc5 5.1.0-rc5 git checkout -b b_5.1.0-rc6 5.1.0-rc6 # rc7 latest as of 2021/03/17
Download database
download-dbase.sh .
Create work and 'build' directory for object files and excecutables
In this directory will be your:
- object files and excecutables,
- model scripts,
- example config files,
- and you will execute your simulation from here
mkdir -p /path/to/my/work/directory export MY_WORK_DIR=/path/to/my/work/directory mkdir build cd build
Set compiler version and compile
• At UQAM
If you want to use the Intel compiler set:
module load openmpi/2.1.5-intel-19.0-mkl module load utils/misc # to get an up to date version of cmake cmake -DCOMPILER=intel -DCMAKE_VERBOSE_MAKEFILE=ON -DWORK_PREFIX=${MY_WORK_DIR} ../project
If you want to use the GNU compiler (gcc/gfortran) set:
module load openmpi/3.1.5-gcc-8.3 cmake -DCOMPILER=gnu -DCMAKE_VERBOSE_MAKEFILE=ON -DWORK_PREFIX=${MY_WORK_DIR} ../project
• On Niagara using the native environment (recommended)
module load intel/2019u4 openmpi/4.0.1 fftw/3.3.8 cmake cmake -DCOMPILER=intel -DCMAKE_VERBOSE_MAKEFILE=ON -DWORK_PREFIX=${MY_WORK_DIR} ../project
• On Niagara using the common Environment
module load CCEnv module load nixpkgs/16.09 module load intel/2019.3 module load openmpi module load cmake/3.16.3 module load fftw-mpi cmake -DCOMPILER=intel -DCMAKE_VERBOSE_MAKEFILE=ON -DWORK_PREFIX=${MY_WORK_DIR} ../project
• On Beluga
module load intel/2019.3 module load openmpi module load cmake/3.16.3 module load fftw-mpi cmake -DCOMPILER=intel -DCMAKE_VERBOSE_MAKEFILE=ON -DWORK_PREFIX=${MY_WORK_DIR} ../project
Create executable
make -j8 work
Run the model
cd ${MY_WORK_DIR} cd work-... # change into work directory, i.e. work-linux26-x86-64-intel-19.0.3.199
Here you will find several example config files under 'configurations'. If you want to run, for example, a global YinYang simulation execute:
./runprep -dircfg configurations/GY_cfgs ./runmod -dircfg configurations/GY_cfgs -ptopo 2x2x1