Nous continuons à parler des outils d'évaluation des performances du CPU sur les machines Linux. Aujourd'hui, nous aborderons : temci, uarch-bench, likwid, perf-tools et llvm-mca.
Davantage de benchmarks :
Photo — — Unsplash
C'est un outil pour évaluer le temps d'exécution de deux programmes. En gros, il permet de comparer le temps d'exécution de deux applications. L'auteur de cet utilitaire est un étudiant allemand, Johannes Bechberger, qui l'a développé dans le cadre de son mémoire de bachelor en 2016. Aujourd'hui, l'outil est sous licence GNU General Public License.
Johannes voulait créer un outil capable de mesurer la performance d'un système de calcul dans un environnement contrôlé. Ainsi, l'une des principales caractéristiques de temci est la possibilité de configurer l'environnement de test. Par exemple, : modifier les paramètres du gestionnaire de fréquence du CPU, désactiver et les caches L1 et L2, désactiver le mode turbo sur les processeurs Intel, etc. Pour le benchmarking, temci utilise des outils , et .
Voici à quoi ressemble le fonctionnement de l'utilitaire dans le premier cas :
# compare the run times of two programs, running them each 20 times
> temci short exec "sleep 0.1" "sleep 0.2" --runs 20
Benchmark 20 times [####################################] 100%
Report for single runs
sleep 0.1 ( 20 single benchmarks)
avg_mem_usage mean = 0.000, deviation = 0.0
avg_res_set mean = 0.000, deviation = 0.0
etime mean = 100.00000m, deviation = 0.00000%
max_res_set mean = 2.1800k, deviation = 3.86455%
stime mean = 0.000, deviation = 0.0
utime mean = 0.000, deviation = 0.0
sleep 0.2 ( 20 single benchmarks)
avg_mem_usage mean = 0.000, deviation = 0.0
avg_res_set mean = 0.000, deviation = 0.0
etime mean = 200.00000m, deviation = 0.00000%
max_res_set mean = 2.1968k, deviation = 3.82530%
stime mean = 0.000, deviation = 0.0
utime mean = 0.000, deviation = 0.0
D'après les résultats du benchmarking, le système génère avec des diagrammes, des tableaux et des graphiques, ce qui distingue temci des solutions similaires.
Comme inconvénient, on note la « jeunesse » de temci. À cause de cela, il les configurations matérielles et logicielles. Par exemple, il est difficile de le faire fonctionner sous macOS, et sur les systèmes avec un processeur ARM, certaines fonctionnalités ne sont pas disponibles. À l'avenir, la situation pourrait changer, car l'auteur développe le projet activement, et le nombre d'étoiles sur GitHub augmente progressivement — il n'y a pas longtemps, temci a même été sur Hacker News.
Un utilitaire pour évaluer les performances des fonctions bas niveau du CPU, développé par l'ingénieur Travis Downs. Récemment, il tient un blogsur GitHub Pages, où il parle des outils de benchmarking et d'autres sujets connexes. En général, uarch-bench commence à gagner en popularité, mais est déjà plutôt souvent par les membres de Hacker News dans des fils de discussion thématiques comme l'outil de prédilection pour le benchmarking. des données.
Uarch-bench permet d'évaluer les performances de la mémoire, la vitesse de chargement parallèle des données et le fonctionnement de nettoyage. . Vous pouvez trouver à quoi ressemblent les résultats de benchmarking générés par le programme en bas de la page.
Il est à noter que uarch-bench, tout comme temci, la fonction Intel Turbo Boost (qui augmente automatiquement la fréquence du processeur sous charge) pour que les résultats des tests soient cohérents.
Pour l’instant, le projet est encore à un stade précoce de développement, donc uarch-bench n’a pas de documentation détaillée et des bugs peuvent apparaître dans son fonctionnement — par exemple, avec le démarrage sur Ryzen. De plus, seuls les benchmarks pour les architectures x86 sont pris en charge. L'auteur promet d'ajouter plus de fonctionnalités à l'avenir et invite à participer au développement.
C'est un ensemble d'outils pour évaluer la performance des machines Linux avec processeurs Intel, AMD et ARMv8. Il a été créé sous l'égide du ministère fédéral de l'éducation et de la recherche scientifique d'Allemagne en 2017 et est passé en open source.
Parmi les outils de likwid, on peut distinguer likwid-powermeter, qui fournit des informations à partir des registres RAPL sur la puissance consommée par le système, ainsi que likwid-setFrequencies — qui permet de contrôler la fréquence du processeur. Vous pouvez trouver la liste complète .
Cet outil est utilisé par les ingénieurs qui travaillent dans le domaine du HPC. Par exemple, avec likwid, un groupe de spécialistes du Centre de calcul régional de l'Université d'Erlangen-Nuremberg (RRZE) en Allemagne. Ce groupe participe également activement au développement de cet ensemble d'outils.

Photo — — Unsplash
C'est un outil pour analyser la performance des serveurs Linux Brendan Gregg. Il est l'un des développeurs — un framework de traçage dynamique pour déboguer des applications en temps réel.
L’outil perf-tools repose sur les sous-systèmes du noyau perf_events et ftrace. Ses utilitaires permettent d'analyser la latence d'entrée/sortie (iosnoop), de suivre les arguments des appels système (unccount, funcslower, funcgraph et functrace) et de rassembler des statistiques sur les « hits » dans le cache de fichiers (cachestat). Dans ce dernier cas, la commande se présente comme suit :
# ./cachestat -t
Counting cache functions... Output every 1 seconds.
TIME HITS MISSES DIRTIES RATIO BUFFERS_MB CACHE_MB
08:28:57 415 0 0 100.0% 1 191
08:28:58 411 0 0 100.0% 1 191
08:28:59 362 97 0 78.9% 0 8
08:29:00 411 0 0 100.0% 0 9
Autour de l'outil s'est formée une communauté assez vaste (). Et il existe des entreprises qui utilisent activement perf-tools, par exemple . Mais l'outil est constamment amélioré et modifié (bien que les mises à jour soient plutôt rares ces derniers temps). Par conséquent, des erreurs peuvent survenir dans son fonctionnement — l'auteur indique que parfois, perf-tools provoque un kernel panic.
Un utilitaire qui prédit combien de ressources informatiques seront nécessaires au code machine sur différents CPU. Il Instructions Par Cycle () et la charge sur le matériel générée par telle ou telle application.
llvm-mca a été présenté en 2018 dans le cadre du projet , qui se consacre au développement d'un système universel d'analyse, de transformation et d'optimisation des programmes. Il est connu que les auteurs de llvm-mca se sont inspirés de la solution d'analyse de performance logicielle et cherchaient à créer son alternative. Et selon les utilisateurs, les résultats de l'outil (leur format et leur quantité) ressemblent effectivement à IACA — un exemple . Cependant, llvm-mca ne prend en charge que , donc pour travailler avec lui, il faudra probablement utiliser des convertisseurs.
De quoi nous parlons dans nos blogs et sur nos réseaux sociaux :
![]()
![]()
![]()
![]()
![]()
Nous, chez 1cloud.ru, proposons un service gratuit «». Gérer les enregistrements DNS chez nous est possible depuis un seul panneau de configuration.
Source : habr.com
