Outils pour utilisateurs

Outils du site


mesure

Ceci est une ancienne révision du document !


Mesure des temps de calcul

Reproductibilité des temps de calcul

Si vous souhaitez reproduire vos temps de calcul, ou comparer les temps de calcul de différents programmes vous devez utiliser le cluster SLURM (et non les machines en libre accès sur lesquelles les temps de calcul peuvent subir de grandes variations en fonction de leur taux d'utilisation).

Pour connaître les spécificités de la machine sur laquelle vous lancez votre job vous pouvez appeler ce scriptcpuinfo dans votre script de soumission (merci à Bruno Bachelet pour ce fichier).

Exemple de script de soumission qui utilise cpuinfo :

#!/bin/bash
 
# ================================================
# OPTIONS 
 
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=1
#SBATCH --time=10:00
#SBATCH --mem-per-cpu=10
 
# =================================================
# exécution du script cpuinfo puis du progamme 
./cpuinfo
./exe

Logiciel multithread

Certains logiciels (comme Cplex) utilisent par défaut tous les cœurs de la machine. Il est important que l'utilisateur paramètre le nombre de cœurs qu'il souhaite effectivement utiliser au niveau du logiciel pour qu'il ne dépasse pas le nombre de cœurs alloués par SLURM. Par exemple si vous demandez à SLURM 8 coeurs alors vous devez paramétrer votre programme pour qu'il n'utilise pas plus de 8 threads.

Dans le cas contraire, il est possible que plusieurs threads soient traités par un même cœur ce qui affecterait les temps de calcul.

Temps de calcul et localisation des cœurs

Fichier /proc/cpuinfo

Les informations détaillées sur les processeurs d'une machine sont disponibles dans le fichier /proc/cpuinfo. Dans ce fichier :

  • processor donne le numéro du processeur (= cœur logique = CPU dans le vocabulaire de SLURM)
  • physical id donne le numéro de socket auquel appartient le processeur
  • core id donne le numéro de cœur physique dans le socket correspondant au processeur

Si deux processeurs ont le même physical id et le même core id alors il s'agit d'un même cœur physique hyperthreadé.

Commandes utiles

  • lscpu permet d'afficher une synthèse des infos sur les processeurs de la machine
  • mpstat -P ALL <sec> permet d'afficher l'activité de chaque cœur (logique) toutes les sec secondes.
  • /usr/bin/time -v suivi du nom du programme donne des informations sur le temps de calcul et les ressources mémoire utilisées (il est nécessaire de préciser le chemin complet de la commande time si on utilise l'option -v)
mesure.1504078257.txt.gz · Dernière modification : 2018/10/11 20:49 (modification externe)