Adapp : exécution d'un code en interactif

Exécution d'un code séquentiel en interactif

L'exécution d'un programme séquentiel sur Adapp est limité en interactif au niveau :

  • du temps CPU du processus : 30mn;
  • de la mémoire pour l'ensemble du travail < 3.5Go;

Si le programme a besoin de plus de ressources, il faut alors le soumettre en mode batch.

Pour connaitre en détail les limites en interactif :

$ ulimit -Sa

Exécution d'un code parallèle MPI en interactif

L'exécution d'un programme parallèle MPI en interactif, via la commande poe, n'est pas possible sur Adapp : il n'existe pas de variable d'environnement (ou d'option pour poe) équivalente au mot-clef LoadLeveler requirements = (Feature == “prepost”) qui permette d'aiguiller les jobs sur l'un des 4 nœuds de pré/post-traitement. Aussi toute exécution parallèle interactive depuis adapp s'exécutera sur l'un des nœuds classiques d'Ada.

Il faut donc soumettre en mode batch.

Exécution en interactif d'un code parallèle multitâche à mémoire partagée

L'exécution en interactif d'un programme parallèle à mémoire partagée (parallélisé avec OpenMP, ou utilisant les pthreads) sur Adapp est limitée au niveau :

  • du temps CPU du processus : 30mn;
  • de la mémoire pour l'ensemble du travail < 3.5Go;
  • du nombre de tâches (threads) (⇐ 4).

Si le programme a besoin de plus de ressources, il faut alors soumettre ce programme en mode batch.

Voici un exemple d'exécution en interactif d'un programme OpenMP demandant 4 threads (tâches OpenMP) :

$ export OMP_NUM_THREADS=4
$ ./prog-preprocessing

Si votre programme a été parallélisé automatiquement, vous pouvez, de la même façon, contrôler le nombre de processus légers générés avec la variable OMP_NUM_THREADS.

Attention : si votre code utilise la directive OpenMP threadprivate, vous aurez alors le message d'erreur suivant lors de l’exécution interactive :

OMP: Error #113: Too many threads to use threadprivate directive.
OMP: Hint: Consider setting KMP_ALL_THREADPRIVATE to a value larger than 128.
forrtl: error (76): Abort trap signal

Pour éviter ceci, il vous suffit d'ajouter l'option -openmp-threadprivate=compat à la compilation. Notez que cette option peut diminuer légèrement les performances du code.

Exécution d'un code parallèle mixte MPI/OpenMP en interactif

L'exécution d'un programme parallèle mixte (MPI + threads) en interactif sur Adapp est impossible pour la même raison que celle invoquée pour les programmes MPI (voir ci-dessus).