Y at-il quelque chose comme l'horloge () qui fonctionne mieux pour le code parallèle?
-
20-09-2019 - |
Question
Je sais que l'horloge () mesure des cycles d'horloge, et est donc pas très bon pour la mesure du temps, et je sais qu'il ya des fonctions comme omp_get_wtime () pour obtenir le temps de mur, mais il me est frustrant pour que le mur le temps varie beaucoup, et je me demandais s'il y avait un moyen de mesurer différents cycles d'horloge (un seul cycle, même si plus d'un thread exécuté dedans). Il doit être quelque chose relativement simple / natif. Merci
La solution
Voir la réponse FreeMemory cette question pour RDTSC si vous utilisez x86 que je l'ai testé et semble fonctionner correctement sur mon système (Mac), mais voir ma réponse à cette question. Voir aussi la critique de RDTSC .
Il est généralement pas la peine de descendre à un niveau de détail trop bas cependant, d'autres morceaux de travail l'ordinateur doit faire utilisera des cycles d'horloge, il varie en fonction de la charge. Je trouve omp_get_wtime()
suffisant, bien que je dois mettre mon code dans une boucle supplémentaire pour se assurer qu'il faut environ une seconde pour assurer des résultats constants d'une exécution à.
Autres conseils
Etes-vous sûr de prendre des mesures de temps ne fonctionnera pas pour vous? Gardez à l'esprit que vous ne pouvez mesurer à tant de millisecondes, en fonction de l'OS.