Vargas : modes d'exécution ST - SMT


Vous êtes ici : Support technique → Calcul scalaire → Exécution/contrôle d'un code en batch → modes d'exécution ST - SMT.


Le mode ST

Dans ce mode, un cœur physique traite un seul flux d'instructions (un seul thread ou un seul processus).
C'est le mode par défaut (STandard), actif depuis le démarrage de la machine.

Le mode SMT

La technologie SMT (Simultaneous Multi Threading) permet à chaque cœur physique de traiter simultanement deux flux d'instructions distincts (deux threads ou deux processus), optimisant ainsi le rendement du cœur de calcul en minimisant les cycles perdus. Le Système d'Exploitation voit deux fois plus de cœurs logiques que de cœurs physiques et associe un flux d'instruction à chaque cœur logique.

Au niveau applicatif, le mode SMT peut être utilisé indifféremment sur des applications parallèles MPI pures, OpenMP/pthreads ou hybrides (MPI + OpenMP/pthreads) ; l'exécution se fait avec deux fois plus de processus ou de threads qu'il n'y a de cœurs physiques réellement utilisés.
Pour des applications peu intensives en CPU ou en accès mémoire, les gains obtenus peuvent être significatifs par rapport au mode ST avec une moyenne de gain de l'ordre de 20 à 30% (de façon exceptionnelle jusqu'à 60%). Par contre, pour des codes déjà intensifs en CPU ou en accès mémoire, le mode SMT est peu adapté et des ralentissements sont couramment constatés.

Utilisation du mode SMT sur Vargas

Concrètement, toutes les classes parallèles sont concernées, MPI comme OpenMP/pthreads et hybrides.
Pour utiliser le mode SMT, la seule modification à apporter aux jobs LoadLeveler est de rajouter la ligne suivante :
# @ task_affinity = cpu

Les limites par défaut des classes ont été adaptées en conséquences.
Par contre, si vous aviez demandé des limites mémoire spécifiques, il faut les modifier. En effet, les processeurs n'ont pas éte physiquement modifiés : comme la mémoire par cœur est restée la même, en mode SMT chaque thread ou processus aura accès à la moitié de la mémoire disponible en mode ST. À taille de problème égale (même exécution en mode SMT qu'en mode ST) :

Scripts simplifiés pour soumettre en mode SMT sur Vargas


Note : pour des exemples de scripts plus détaillés, repartez du menu Calcul scalaire → Exécution/contrôle d'un code en batch → Code parallèle OpenMP, MPI ou hybride.
© CNRS - IDRIS, 23/04/2012