mesure
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
mesure [2017/10/18 10:19] – toussain | mesure [2021/06/30 13:48] (Version actuelle) – hetoussa | ||
---|---|---|---|
Ligne 5: | Ligne 5: | ||
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' | 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' | ||
- | Pour connaître les spécificités de la machine sur laquelle vous lancez votre job vous pouvez appeler ce script[[http:// | + | Pour connaître les spécificités de la machine sur laquelle vous lancez votre job vous pouvez appeler ce script[[http:// |
- | Exemple de script de soumission qui utilise | + | Exemple de script de soumission qui utilise |
<code bash> | <code bash> | ||
Ligne 21: | Ligne 21: | ||
# ================================================= | # ================================================= | ||
- | # exécution du script | + | # exécution du script |
- | ./cpuinfo | + | ./getcpuinfo |
./exe | ./exe | ||
Ligne 29: | Ligne 29: | ||
==== Logiciel multithread ==== | ==== Logiciel multithread ==== | ||
- | Certains logiciels (comme Cplex) utilisent par défaut tous les cœurs | + | Lorsque vous utilisez un logiciel qui gère automatiquement sa quantité |
- | 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. | + | Certains logiciels (comme Cplex) tentent d' |
+ | |||
+ | Par programmation, | ||
+ | Pour plus de détails, voir la page [[progc|Programmation en C / C++]]. | ||
==== Temps de calcul et localisation des cœurs ==== | ==== Temps de calcul et localisation des cœurs ==== | ||
Ligne 39: | Ligne 42: | ||
Les informations détaillées sur les processeurs d'une machine sont disponibles dans le fichier ''/ | Les informations détaillées sur les processeurs d'une machine sont disponibles dans le fichier ''/ | ||
* **processor** donne le numéro du processeur (= cœur logique = CPU dans le vocabulaire de SLURM) | * **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 | * **core id** donne le numéro de cœur physique dans le socket correspondant au processeur | ||
+ | * **physical id** donne le numéro de socket auquel appartient le 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é. | 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é. | ||
Ligne 47: | Ligne 51: | ||
* '' | * '' | ||
+ | |||
+ | * '' | ||
* '' | * '' | ||
- | * ''/ | + | * ''/ |
+ | * '' | ||
+ | |||
+ | * '' | ||
+ | |||
+ | ==== Fonction getrusage (C/ C++ sous Linux) ==== | ||
+ | Le fonction [[https:// | ||
+ | |||
+ | Les exemples de fonctions ci-dessous permettent de récupérer le temps de calcul et la consommation de RAM. | ||
+ | |||
+ | <code C> | ||
+ | # | ||
+ | # | ||
+ | | ||
+ | | ||
+ | double give_time() | ||
+ | { | ||
+ | struct rusage ru; | ||
+ | struct timeval tim; | ||
+ | getrusage(RUSAGE_SELF, | ||
+ | tim = ru.ru_utime; | ||
+ | | ||
+ | //temps systeme en secondes | ||
+ | double stime = (double)tim.tv_sec + (double)tim.tv_usec / 1000000.0; | ||
+ | | ||
+ | return stime; | ||
+ | } | ||
+ | |||
+ | double give_maxMemoryUsed() | ||
+ | { | ||
+ | struct rusage ru; | ||
+ | getrusage(RUSAGE_SELF, | ||
+ | return ru.ru_maxrss; | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | </ | ||
mesure.1508314762.txt.gz · Dernière modification : 2018/10/11 22:49 (modification externe)