====== FAQs ======
~~QNA~~
=?==== Général ======
??? Que faire avec l'erreur ''no matching host key type found'' lors d'une tentative de connexion ?
!!! Modifier le fichier ''~/.ssh/config'' sur votre machine pour ajouter ces lignes :
Host mesoshared.univ-fcomte.fr mesologin1.univ-fcomte.fr mesologin2.univ-fcomte.fr
PubkeyAcceptedAlgorithms +ssh-rsa
HostkeyAlgorithms +ssh-rsa
??? Comment modifier mon mot de passe ?
!!! Se connecter sur un nœud de login, taper la commande système ''passwd'' et de suivre les instructions
??? Comment faire pour connaître l'espace disque occupé ?
!!!
* Cette information est disponible sur le portail mésocentre : http://mesoportail.univ-fcomte.fr
* Sur le noeud de login en utilisant la commande ''meso-quota''
=?==== Utilisation ======
??? Sur quel file d'attente dois-je exécuter mes programmes ?
!!!
* Pour les applications séquentielle, tableaux de tâches et applications parallèle à mémoire partagée (OpenMP) il faut utiliser la file : **all.q**
* Pour les applications parallèles **MPI**, il faut utiliser la file **parallel.q**
* Pour les applications graphiques, interactives il faut utiliser la machine : **mesoshared.univ-fcomte.fr**
??? Que signifie cette erreur : error: no suitable queues
!!! SGE affiche ce message d'erreur lorsque votre job demande des ressources impossibles à avoir.
??? Pourquoi mon job est-il en ''Eqw'' ?
!!! Suite à une erreur dans votre script. Vérifier notamment que ''#!/bin/bash'' est en première ligne du shell, penser à passer
''dos2unix'' sur les fichiers windows.
Pour afficher le message d'erreur SGE :
qstat -j numerodujob
??? Pourquoi mon job se termine aussitôt après avoir été soumis ?
!!! Il est probable que votre script n'a pas été exécuté. Une des erreurs les plus courantes réside dans l'absence de définition de l'environnement. N'oubliez pas de définir les variables d'environnement nécessaires à l'exécution du script ou du binaire utilisé.
??? Pourquoi mon job est-il en ''qw'' ?
!!! SGE n'arrive pas à trouver les ressources demandées, vérifiez les messages SGE par : ''qstat -j idJob''
??? Comment demander de la mémoire ?
!!! En utilisant l'option ''-l h_vmem''
Par exemple :
#$ -l h_vmem=2G
Le job sera exécuté sera autorisé à allouer 2G de mémoire libre. Il sera tué par SGE si il dépasse cette valeur.
[[sge?#gestion_de_la_memoire|Détails]]
??? Comment indiquer le temps d'exécution d'un job ?
!!! En utilisant l’option ''-l h_rt''
* en ligne de commande : qsub -l h_rt=02:30:00 job.sge
* dans le script : #$ -l h_rt=02:30:00
??? Pourquoi indiquer le temps d'exécution ?
!!! Pour faciliter la répartition des ressources par GE
??? Que se passe-t-il si le temps indiqué est trop court ou trop long ?
!!! Si le temps indiqué est trop court, votre job sera interrompu. S’il est trop long, vous serez pénalisé par SGE qui utilise cette information pour déterminer la priorité des jobs
??? Comment exécuter mes jobs (job1, job2 et job3) dans l'ordre ?
!!! Cela est possible en exécutant la commande suivante :
% qsub -N job1 [Script name]
% qsub -N job2 -hold_jid job1 [Script name]
% qsub -N job3 -hold_jid job1,job2 [Script name]
Chaque job à un nom (job1, job2 et job3). Lorsque ''job1'' termine son exécution, job2 commence son exécution. Lorsque les deux jobs, job1 et job2, terminent leur exécution, job3 commence son exécution.
??? Comment soumettre un job multithreadé ?
!!! En utilisant l'environnement parallèle ''openmp''. cf : [[sge|Soumission d'un job parallèle]]
**Exemple :** exécution sur un noeuds à 8 coeurs
#$ -pe openmp 8
..
./appli params
**Exemple :** exécution sur un noeuds à 12 coeurs
#$ -pe openmp 12
..
./appli params
??? Comment réserver un noeud (avoir uniquement mon programme qui s'exécute sur ce noeud) ?
!!! Voir les jobs multithreadé ci-dessus. Il faut spécifier 8 ou 12 comme valeurs, selon le type de machines, pour l'environnement **openmp**
=?==== Applications ======
??? Comment utiliser MATLAB en batch ?
!!!
- Il faut rajouter ''-l matlab=1'' dans votre script, cela permet à SGE de prendre en compte les jetons.
- Lancer matlab : ''matlab -nodisplay -nodesktop -nojvm -nosplash < monprogramme.m''
Voir l'exemple complet de script [[sge_scripts|Applications séquentielles]]
??? Comment utiliser COMSOL en batch ?
!!! Il faut rajouter ''-l comsol=1'' dans votre script, cela permet à SGE de prendre en compte les jetons.
Si vous utilisez matlab avec comsol, il faut bien entendu rajouter ''-l matlab=1''
**Lancer comsol** :
module load comsol # charge le module comsol
comsol batch -input mymodel.mph -output myresult.mph
**Lancer comsol avec matlab** :
module load comsol # charge le module comsol/3.5a
module load matlab # charge le module matlab
comsol matlab path -ml -nodesktop -ml -nodisplay
??? Comment lancer COMSOL en parallèle (mémoire partagée) ?
!!! Comsol s'exécute uniquement sur des machines SMP (multi-coeurs). Il faut donc utiliser l'environnement parallèle ''openmp'' pour spécifier le nombre de coeurs et de lancer comsol avec l'otption ''-np''
**Exemple : lancer comsol sur 8 coeurs**
#$ -pe openmp 8
module load comsol # charge le module comsol
comsol batch -np 8 -input mymodel.mph -output myresult.mph
=?==== Optimisation ======
??? Quelles sont les options de compilation conseillées ?
!!! Nous encourageons vivement l'utilisation du [[compilation:intel-cluster-studio| compilateur Intel]]. Les options dépendent de la nature des programmes. Dans tous les cas, Nous conseillons d'activer la vectorisation en utilisant l'option : ''-axCORE-AVX2''
??? Comment choisir l'interface de communication (Ethernet, InfiniBand) en MPI ?
**Pour Intel MPI**
On utilise la variable d'environnement ''I_MPI_DEVICE''
Les valeurs possibles sont :
* ''sock'' : socket
* ''shm'' : mémoire partagée
* ''ssm'' : socket + mémoire partagée
* ''rdma'' : infiniband
* ''rdssm'' : socket + mémoire partagée + rdma (la valeur par défaut)
**Exemple :**
Utiliser uniquement les sockets (TCP Ethernet)
mpirun -env I_MPI_DEVICE socket .....
Utiliser uniquement l'infiniband
mpirun -env I_MPI_DEVICE rdma ....
__
**Pour Open MPI c'est différent :**__
Open MPI will, by default, choose to use ''cm'' when the InfiniPath
PSM MTL can be used. Otherwise, ''OB1'' will be used and the
corresponding BTLs will be selected. Users can force the use of ''ob1''
or ''cm'' if desired by setting the ''pm'' ''MCA'' parameter at run-time:
- "ob1" supports a variety of networks that can be used in
combination with each other (per OS constraints; e.g., there are
reports that the GM and OpenFabrics kernel drivers do not operate
well together):
- OpenFabrics: InfiniBand and iWARP
- Loopback (send-to-self)
- Myrinet: GM and MX
- Portals
- Quadrics Elan
- Shared memory
- TCP
- SCTP
- uDAPL
- "cm" supports a smaller number of networks (and they cannot be
used together), but may provide better better overall MPI
performance:
- Myrinet MX (not GM)
- InfiniPath PSM
- Portals
$ mpirun --mca pml ob1 ...
or
$ mpirun --mca pml cm ...
**So to force TCP to be used, you need to force the use of the ob1 PML
and then force the use of the TCP BTL. Perhaps something like this:**
$ mpirun --mca pml ob1 --mca btl tcp,sm,self ...
* Force InfiniBand: --mca pml ob1 --mca btl self,sm,openib
* Force OPA: --mca pml cm --mca mtl psm2