2017-05-04 1 views
2

Je cours un micro-benchmark avec JMH pour évaluer la performance de différentes implémentations d'algorithmes Java. Pourtant, j'observe un débit incohérent en fonction de la météo que le processeur Intel Turbo Turbo est en cours d'exécution, ou non. Puisque le turbo boost est activé en fonction des conditions d'environnement, il est parfois activé pour certains tests au banc et pas pour d'autres. Ainsi, certains résultats montrent un meilleur rendement simplement parce que le turbo boost a été activé et non à cause de son meilleur rendement. Donc, j'essaie d'éviter les effets de turbo boost en annotant tous mes tests avec @GroupThreads(threadsNumber) et un threadsNumber est égal au nombre de processeurs disponibles et donc m'attendre à faire fonctionner tous les processeurs à pleine charge et activer le turbo boost pendant toute la durée exécution de benchmark.Comment éviter les effets secondaires d'Intel Turbo Boost dans le benchmark?

Est-ce une bonne approche? Existe-t-il une alternative plus fiable pour éviter les effets du turbo boost?

Mise à jour: selon @Andreas answer, une autre approche consiste à désactiver la suralimentation turbo dans le BIOS ou dans les paramètres du système d'exploitation. Cependant, étant donné que la fréquence d'horloge du processeur peut changer, je pense que cela ne suffit pas pour l'éteindre, car la variation de la vitesse du processeur affectera également les tests. Donc, il est peut-être plus fiable de le maintenir, de forcer le turbo boost à fonctionner et de régler tous les threads sur le benchmark.

Lequel serait la meilleure approche pour éviter les effets de turbo boost?

Répondre

1

Pour empêcher Turbo Boost, désactivez-le dans le BIOS ou dans les paramètres du système d'exploitation.

Google disable turbo boost comment, selon votre système.

+0

Étant donné que la fréquence d'horloge du processeur peut changer, je pense qu'il ne suffit pas de l'éteindre, car la variation de la vitesse du processeur affectera également le résultat du test. Donc, il est peut-être plus fiable de le garder, forçant turbo booster et exécuter tous les threads physiques dans le benchmark. –

+0

@MiguelGamboa Ehhhh, n'est pas [Turbo Boost] (https://en.wikipedia.org/wiki/Intel_Turbo_Boost) * spécifiquement * le changement dynamique de la fréquence d'horloge? Y a-t-il deux mécanismes différents en jeu en même temps pour changer la fréquence d'horloge du CPU? Si oui, éteignez l'autre aussi. Seul moyen de * garantir * une fréquence d'horloge stable. – Andreas