[[Category:Software]]
Le progiciel [https://www.mikepoweredbydhi.com/ MIKE du groupe DHI] sert à la modélisation hydraulique et hydrologique.
== Licence ==
MIKE est un produit commercial et vous devez avoir votre propre licence.
Pour pouvoir l'utiliser sur nos grappes de calcul, vous devez contacter le service à la clientèle de MIKE à [mailto:mike@dhigroup.com mike@dhigroup.com] et confirmer que vous avez
* une ''licence internet'' et
* un lien téléchargé pour la ''version Linux'' de MIKE.
== Installation ==
Vous devez télécharger les archives d'installation pour Linux.
Les directives suivantes supposent que les archives d'installation sont ces trois fichier, selon la version de MIKEs :
* MIKE_Zero_2023_rhel7_22.11.05.tgz
* MIKE_Zero_2023_Tools_rhel7_22.11.05.tgz
* MIKE_Zero_2023_Examples.tgz
* MIKE_Zero_2022_rhel7_Update_1.tgz
* MIKE_Zero_2022_Tools_rhel7_Update_1.tgz
* MIKE_Zero_2022_Examples_Update_1.tgz
1. Créez le répertoire ~/scratch/MIKE_TGZ pour y téléverser les trois archives.
2. MIKE a été compilé avec la bibliothèque Intel MPI, donc chargez le module apparié <intelmpi.
module load StdEnv/2020 intel/2021.2.0 intelmpi/2021.2.0
module load StdEnv/2020 intel/2020.1.217 intelmpi/2019.7.217
3. Lancez les commandes suivantes, selon la version de MIKE.
Ceci fera l'extraction des archives. Exécutez les scripts d'installation install.sh pour chaque composant,
ensuite [[Installing_software_in_your_home_directory/fr#Installer_des_paquets_binaires|modifiez les binaires]] pour qu'ils trouvent les bibliothèques dynamiques d'Intel MPI.
export MIKE_TGZ="$HOME/scratch/MIKE_TGZ"
export MIKE_HOME="$HOME/MIKE/2023"
cd $MIKE_TGZ
tar -xzf MIKE_Zero_2023_rhel7_22.11.05.tgz
tar -xzf MIKE_Zero_2023_Tools_rhel7_22.11.05.tgz
tar -xzf MIKE_Zero_2023_Examples.tgz
cd $MIKE_TGZ/MIKE_Zero_2023_rhel7_22.11.05
sh install.sh --eula --install-path "$MIKE_HOME" --license-server 127.0.0.1
cd $MIKE_TGZ/MIKE_Zero_2023_Tools_rhel7_22.11.05
sh install.sh --eula --install-path "$MIKE_HOME"
cd $MIKE_TGZ/MIKE_Zero_2023_Examples
sh install.sh --eula --install-path "$MIKE_HOME"
module load StdEnv/2020 intel/2021.2.0 intelmpi/2021.2.0
setrpaths.sh --path "$MIKE_HOME/bin" --add_origin \
--add_path="$EBROOTIMPI/mpi/latest/lib/release:$EBROOTIMPI/mpi/latest/lib"
MIKE_TGZ_DIR="$HOME/MIKE_TGZ"
MIKE_INST_DIR="$HOME/MIKE/2022"
cd $MIKE_TGZ_DIR
tar -xzf MIKE_Zero_2022_rhel7_Update_1.tgz
tar -xzf MIKE_Zero_2022_Tools_rhel7_Update_1.tgz
tar -xzf MIKE_Zero_2022_Examples_Update_1.tgz
cd $MIKE_TGZ_DIR/MIKE_Zero_2022_rhel7_Update_1
sh install.sh --eula --install-path "$MIKE_INST_DIR" --license-server 127.0.0.1
cd $MIKE_TGZ_DIR/MIKE_Zero_2022_Tools_rhel7_Update_1
sh install.sh --eula --install-path "$MIKE_INST_DIR"
cd $MIKE_TGZ_DIR/MIKE_Zero_2022_Examples_Update_1
sh install.sh --eula --install-path "$MIKE_INST_DIR"
module load StdEnv/2020 intel/2020.1.217 intelmpi/2019.7.217
setrpaths.sh --path "$MIKE_INST_DIR/bin" --add_origin \
--add_path="$EBROOTIMPI/intel64/lib/release:$EBROOTIMPI/intel64/lib"
=== Autres versions ===
Les instructions ci-dessus supposent que les archives d'installation ont des noms de fichiers spécifiques. À l'installation de versions mineures publiées la même année, les noms des fichiers pour les archives (par exemple dans tar -xzf MIKE_Zero_2023_rhel7_22.11.05.tgz),
et les noms des répertoires (par exemple dans cd $MIKE_TGZ/MIKE_Zero_2023_rhel7_22.11.05) ont besoin d'être ajustés en conséquence.
Les prochaines versions majeures de MIKE pourraient utiliser des versions différentes de MPI et il faudrait alors modifier les directives en conséquence. Essayez un module de bibliothèque Intel MPI avec une version majeure correspondante (année). SI vous avez besoin d'assistance, contactez le [[Technical support/fr|soutien technique]].
=== Créer un module ===
Collez ces commandes dans votre terminal pour créer un module d'environnement pour MIKE.
Assurez-vous de modifier la version (2022) pour correspondre à la version que vous avez installée.
Modifiez aussi la version des modules intelmpi et intel pour correspondre à ce que vous avez chargé pendant l'installation.
export MIKE_VERSION=2023
mkdir -p $HOME/modulefiles/mike
cat > $HOME/modulefiles/mike/${MIKE_VERSION}.lua <
export MIKE_VERSION=2022
mkdir -p $HOME/modulefiles/mike
cat > $HOME/modulefiles/mike/${MIKE_VERSION}.lua <
Activez ce module dans chaque tâche ou dans chaque session de connexion avec
{{Command|module load mike/2023}}
{{Command|module load mike/2022}}
=== Configurer la licence ===
Le service à la clientèle de MIKE vous enverra des directives comme ceci pour configurer votre licence.
{{Command|licconfig set --type{{=}}internet --iuser{{=}}user@example.com --ipassword{{=}}my-password}}
Ceci se fait habituellement une seule fois quand vous recevez une nouvelle licence ou un nouveau code de licence.
Les renseignements sur la licence sont enregistrés dans le fichier ~/.config/DHI/license/NetLmLcwConfig.xml.
== Exemple de script pour une tâche ==
{{File
|name=job_mike_2023_CPU.sh
|lang="bash"
|contents=
#!/bin/bash
#SBATCH --nodes=1
#SBATCH --ntasks=8
#SBATCH --cpus-per-task=1
#SBATCH --mem-per-cpu=4000M
#SBATCH --time=00:20:00
module load StdEnv/2020 intel/2021.2.0 intelmpi/2021.2.0 mike/2023
export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK:-1}
engine="FemEngineHD"
model="my_model.m3fm"
srun $engine $model
}}
{{File
|name=job_mike_2022_CPU.sh
|lang="bash"
|contents=
#!/bin/bash
#SBATCH --nodes=1
#SBATCH --ntasks=8
#SBATCH --cpus-per-task=1
#SBATCH --mem-per-cpu=4000M
#SBATCH --time=00:20:00
module load StdEnv/2020 intel/2020.1.217 intelmpi/2019.7.217 mike/2022
export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK:-1}
slurm_hl2hl.py --format MPIHOSTLIST > machinefile.$SLURM_JOBID
engine="FemEngineHD"
model="my_model.m3fm"
mpirun -machinefile machinefile.$SLURM_JOBID $engine $model
}}