Imaginez si votre application d'exercice vous enregistrait uniquement en train de faire un régime simple qui n'a jamais changé ou qui ne nécessitait aucun ajustement de votre niveau d'effort. Le tracé graphique 2D de votre entraînement ressemblerait à la ligne plate sur un moniteur cardiaque, fournissant peu d'informations sur votre performance globale. Malheureusement, c'est à cela que ressemble une ligne de tracé d'une référence synthétique pour les performances de stockage du poste de travail. Ces types de benchmarks sont conçus pour extraire les valeurs maximales du périphérique de stockage à l'aide de spécifications d'accès fortement optimisées pour les micrologiciels, les pilotes et le matériel.
Imaginez si votre application d'exercice vous enregistrait uniquement en train de faire un régime simple qui n'a jamais changé ou qui ne nécessitait aucun ajustement de votre niveau d'effort. Le tracé graphique 2D de votre entraînement ressemblerait à la ligne plate sur un moniteur cardiaque, fournissant peu d'informations sur votre performance globale. Malheureusement, c'est à cela que ressemble une ligne de tracé d'une référence synthétique pour les performances de stockage du poste de travail. Ces types de benchmarks sont conçus pour extraire les valeurs maximales du périphérique de stockage à l'aide de spécifications d'accès fortement optimisées pour les micrologiciels, les pilotes et le matériel.
Le cas classique mesure les E/S aléatoires à des tailles de bloc de 4K avec une profondeur de file d'attente très élevée. Dans ce scénario, les fournisseurs ont amplement la possibilité d'optimiser la file d'attente de stockage et de maximiser le score IOPS (opérations d'entrée/sortie par seconde) pour le périphérique. En revanche, les applications de station de travail réelles ont une plage d'E/S moyenne de un ou deux. Avec des profondeurs de file d'attente aussi faibles, la réorganisation et d'autres optimisations n'ont pas un effet aussi dramatique sur les performances ; le goulot d'étranglement se déplace vers les capacités matérielles brutes, même avec des architectures RAID ou de mise en cache hybride/à plusieurs niveaux agressives.
Un graphe traçant le stockage lit et écrit pour un benchmark synthétique. L'axe X est le décalage à partir d'un emplacement de départ où un IO se produit. L'axe Y est la taille de bloc de la transaction effectuée à cet emplacement. Une taille de bloc de 128 Ko, par exemple, essaierait de lire 128 Ko de données à partir du lecteur à un emplacement décalé, le tout en une seule requête.
Chemins de stockage imprévisibles
Les applications de station de travail réelles ne suivent pas de chemins prévisibles pour des accès au stockage optimaux. Dans le monde du montage vidéo non linéaire, par exemple, une taille de bloc s'aligne plus étroitement sur le format de conteneur ou la méthode d'encodage plutôt qu'une taille de bloc optimale pour les transferts de fichiers très volumineux.
Il serait beaucoup plus rapide pour une application d'utiliser des tailles de bloc de 128 Ko pour tous les fichiers volumineux lus en mémoire, puis de parcourir ces données dans une taille plus petite. Mais, le fait que l'application dicte d'autres méthodes moins optimales d'accès au stockage rend toute mesure synthétique moins représentative de la façon dont le travail réel est traité.
Le montage vidéo n'est qu'un exemple. Presque toutes les applications, même celles d'un même secteur, utilisent des méthodes de lecture/écriture différentes, ce qui rend la mesure des états de performances de pointe largement inutile. La seule façon de mesurer le stockage avec précision consiste à imiter les opérations telles qu'elles se produisent dans les applications réelles.
Améliorer la méthodologie
Pour son benchmark SPECwpc 2.1, publié début 2016, le sous-comité SPEC Workstation Performance Characterization (SPECwpc) a utilisé IOMeter - un outil de mesure et de caractérisation du sous-système IO - pour simuler l'activité IO pour une variété d'applications professionnelles. La taille et la fréquence des transactions de stockage ont été collectées à partir de ces applications et IOMeter a utilisé les données pour générer une chaîne de transactions de stockage sur une durée spécifiée.
Bien que cette technique soit meilleure que la mesure de la bande passante et de la latence maximales d'un poste de travail, elle n'était toujours pas très proche de ce que font réellement les applications. Avec sa prochaine version, SPECwpc souhaitait mieux imiter le comportement des applications, tout en reflétant l'impact des nouveaux dispositifs à semi-conducteurs, des technologies telles que NAND et 3D Xpoint, et diverses options de connectivité PCIe.
Lors du développement du benchmark SPECworkstation 3, publié en novembre 2018, SPECwpc a utilisé Windows Process Monitor pour tracer les transactions de stockage à partir d'une grande variété d'applications professionnelles engagées dans un travail réel. SPECwpc a ensuite écrit un utilitaire de lecture pour traduire les traces en flux de transactions de stockage presque identiques à celles des applications réelles.
Lecture/écriture pour l'application SPECworkstation 3 Handbrake
Plutôt que d'utiliser les données réelles des applications, qui auraient une taille de centaines de gigaoctets, SPECwpc a rempli les demandes de stockage avec des données sélectionnées au hasard. L'utilitaire de lecture utilise ensuite plusieurs threads pour écrire dans plusieurs fichiers, tout comme l'application réelle.
Le benchmark SPECworkstation 3 intègre des traces d'une grande variété d'applications, y compris les médias et le divertissement (animation 3D, rendu), le développement de produits (CAD/CAM/CAE), les sciences de la vie (médical, moléculaire), les services financiers, l'énergie (pétrole et gaz ), les opérations générales et le calcul GPU.
Les applications tracées pour la charge de travail de stockage SPECworkstation 3 incluent 7zip, Adobe Media Encoder, Adobe Premier Pro, Ansys Icepak, Ansys Mechanical, Autodesk 3ds Max, Autodesk Maya, Autodesk Revit, Blender, CalculiX, Dassault Systémes Solidworks, Handbrake, Lammps, Microsoft Visual Studio 2015, Namd, l'ensemble de vues d'énergie SPECviewperf 13 et la charge de travail SPECworkstation 3 WPCcfd.
Lecture/écriture pour l'application Calculix (CCX) dans le benchmark SPECworkstation 3
Pour l'avenir
La méthode de lecture utilisée dans SPECworkstation 3 génère des threads d'une manière raisonnablement proche de l'application réelle, mais elle a toujours un problème central : la chronologie des E/S et toute synchronisation entre les threads ne sont pas conservées avec précision. Cela conduit à des cas où certains threads terminent certaines E/S plus rapidement et la simultanéité des IOP sur les différents threads n'est pas parfaitement synchronisée, ce qui entraîne des variations occasionnelles d'une exécution à l'autre.
Pour SPECworkstation 4, dont la sortie est prévue en 2020, SPECwpc s'efforcera de préserver la chronologie des E/S de manière à empêcher les E/S de fusionner lorsqu'elles atteignent le bus vers le périphérique de stockage.
Un appel à participation
Bien qu'imparfait, le traçage des opérations de stockage à partir de commandes de traitement d'applications réelles telles que celles générées par les utilisateurs de postes de travail dans diverses industries est une avancée majeure.
Le sous-comité SPECwpc - qui comprend des représentants d'AMD, Dell, Fujitsu, HP, Intel, Lenovo et Nvidia - accueille les commentaires sur les futures charges de travail des fournisseurs d'appareils, des développeurs d'applications et des utilisateurs ayant un intérêt dans les performances de stockage.
Comme pour les autres benchmarks SPEC, fournir les moyens les plus précis de capturer et de rapporter les performances de stockage des postes de travail dans le monde réel aidera à ouvrir la voie aux développeurs pour améliorer leurs processus à l'avenir.
– Spectacles Alex
Alex Shows est président du sous-comité SPEC Workstation Performance Characterization (SPECwpc) et ingénieur distingué chez Dell. Ses 23 années d'expérience dans l'industrie comprennent 19 années de conception, de développement et de documentation de logiciels ; 17 ans de validation de la conception du matériel et des pilotes ; et 10 ans de recherche appliquée dans les technologies matérielles et logicielles. Il détient 12 brevets dont six en instance.
Pour en savoir plus sur le benchmarking graphique et poste de travail, visitez le site Web de SPEC/GWPG, abonnez-vous à la newsletter SPEC/GWPG, ou rejoignez les Graphics and Groupe LinkedIn Analyse comparative des postes de travail.
Les benchmarks SPEC/GWPG sont disponibles pour téléchargement gratuit à tout le monde sauf aux vendeurs d'ordinateurs et de produits et services connexes qui ne sont pas membres du groupe SPEC Graphics and Workstation Performance (SPEC/GWPG).