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 [2018/05/15 08:57] – hetoussa | 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 getcpuinfo : | Exemple de script de soumission qui utilise getcpuinfo : | ||
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 53: | Ligne 56: | ||
* '' | * '' | ||
- | * ''/ | + | * ''/ |
* '' | * '' | ||
+ | * '' | ||
+ | ==== 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.1526367436.txt.gz · Dernière modification : 2018/10/11 22:49 (modification externe)