Thứ Bảy, 23 tháng 2, 2019

Benchmark (Computing) - Wikipedia



Beim Rechnen ist ein Benchmark das Ausführen eines Computerprogramms, einer Reihe von Programmen oder anderer Operationen, um normalerweise die relative -Leistung eines Objekts zu bewerten durch Durchlaufen einer Reihe von Standardtests und -verfahren dagegen. [1]
Der Begriff Benchmark wird auch häufig für aufwändig entworfene Benchmarking-Programme selbst verwendet.

Benchmarking ist normalerweise mit der Bewertung von Leistungsmerkmalen von Computerhardware verbunden, z. B. der Gleitkommaoperationsleistung einer CPU. Es gibt jedoch Umstände, unter denen die Technik auch auf Software anwendbar ist. Software-Benchmarks werden beispielsweise mit Compilern oder Datenbankverwaltungssystemen (DBMS) durchgeführt.

Benchmarks bieten eine Methode zum Vergleichen der Leistung verschiedener Subsysteme über verschiedene Chip- / Systemarchitekturen hinweg.

Testsuiten sind eine Art System, mit dem die - Korrektheit von Software beurteilt werden soll.




Zweck [ edit ]


Mit fortschreitender Computerarchitektur wurde es immer schwieriger, die Leistung verschiedener Computersysteme zu vergleichen, indem einfach deren Spezifikationen betrachtet wurden. Daher wurden Tests entwickelt, die den Vergleich verschiedener Architekturen ermöglichten. Zum Beispiel arbeiteten Pentium-4-Prozessoren im Allgemeinen bei einer höheren Taktfrequenz als Athlon XP- oder PowerPC-Prozessoren, die nicht notwendigerweise zu mehr Rechenleistung führten. Ein Prozessor mit einer langsameren Taktfrequenz kann so gut oder besser als ein Prozessor sein, der mit einer höheren Frequenz arbeitet. Siehe BogoMips und den Megahertz-Mythos.

Benchmarks dienen dazu, eine bestimmte Art von Workload einer Komponente oder eines Systems nachzubilden. Synthetische Benchmarks tun dies durch speziell erstellte Programme, die die Komponente der Workload auferlegen. Anwendungsbenchmarks führen auf dem System reale Programme aus. Während Anwendungs-Benchmarks in der Regel auf einem bestimmten System ein besseres Maß für die reale Leistung liefern, sind synthetische Benchmarks zum Testen einzelner Komponenten wie Festplatten oder Netzwerkgeräte nützlich.

Benchmarks sind besonders wichtig für das CPU-Design, da Prozessorarchitekten die Möglichkeit erhalten, bei Entscheidungen in der Mikroarchitektur zu messen und Kompromisse einzugehen. Wenn beispielsweise ein Benchmark die wichtigsten Algorithmen einer Anwendung extrahiert, enthält er die leistungsabhängigen Aspekte dieser Anwendung. Wenn Sie dieses viel kleinere Snippet auf einem zyklusgenauen Simulator ausführen, erhalten Sie Hinweise, wie Sie die Leistung verbessern können.

Vor 2000 hatten Computer- und Mikroprozessorarchitekten SPEC dazu verwendet, obwohl die Unix-basierten Benchmarks von SPEC recht langwierig waren und daher nur schwer zu verwenden waren.

Es ist bekannt, dass Computerhersteller ihre Systeme so konfigurieren, dass sie bei Benchmark-Tests, die im realen Einsatz nicht repliziert werden, eine unrealistisch hohe Leistung bieten. Zum Beispiel konnten einige Compiler in den achtziger Jahren eine bestimmte mathematische Operation erkennen, die in einem bekannten Fließkommabezug verwendet wird, und die Operation durch eine schnellere mathematisch äquivalente Operation ersetzen. Eine solche Umwandlung war jedoch außerhalb der Benchmark bis Mitte der 1990er Jahre nur selten sinnvoll, als RISC- und VLIW-Architekturen die Bedeutung der Compilertechnologie im Hinblick auf die Leistung betonten. Benchmarks werden jetzt regelmäßig von Compiler-Unternehmen verwendet, um nicht nur ihre eigenen Benchmark-Ergebnisse zu verbessern, sondern auch die tatsächliche Anwendungsleistung.

CPUs mit vielen Ausführungseinheiten - beispielsweise einer superskalaren CPU, einer VLIW-CPU oder einer rekonfigurierbaren Rechen-CPU - haben normalerweise langsamere Taktraten als eine sequentielle CPU mit einer oder zwei Ausführungseinheiten, wenn sie aus ebenso schnellen Transistoren bestehen . Trotzdem erledigen CPUs mit vielen Ausführungseinheiten häufig reale und Benchmark-Aufgaben in kürzerer Zeit als die vermeintlich schnellere Hochtakt-CPU.

Aufgrund der großen Anzahl verfügbarer Benchmarks kann ein Hersteller normalerweise mindestens einen Benchmark finden, der zeigt, dass sein System ein anderes System übertrifft. Die anderen Systeme können mit einem anderen Benchmark ausgezeichnet werden.

Hersteller geben im Allgemeinen nur die Benchmarks (oder Aspekte von Benchmarks) an, die ihre Produkte im besten Licht zeigen. Es ist auch bekannt, dass sie die Bedeutung von Benchmarks falsch darstellen, um ihre Produkte wieder im besten Licht zu zeigen. Zusammen werden diese Praktiken Bankmarketing genannt.

Idealerweise sollten Benchmarks echte Anwendungen nur ersetzen, wenn die Anwendung nicht verfügbar ist oder zu schwierig oder zu teuer ist, um sie auf einen bestimmten Prozessor oder ein Computersystem zu portieren. Wenn die Leistung von entscheidender Bedeutung ist, ist der einzige Maßstab, auf den es ankommt, die Anwendungs-Suite der Zielumgebung.


Herausforderungen [ edit ]


Benchmarking ist nicht einfach und erfordert oft mehrere iterative Runden, um vorhersagbare, nützliche Schlussfolgerungen zu ziehen. Die Interpretation von Benchmarking-Daten ist ebenfalls außerordentlich schwierig. Hier ist eine unvollständige Liste der häufigsten Herausforderungen:


  • Hersteller tendieren dazu, ihre Produkte speziell auf Benchmarks nach Industriestandard abzustimmen. Norton SysInfo (SI) lässt sich besonders leicht einstellen, da es hauptsächlich auf die Geschwindigkeit mehrerer Operationen ausgerichtet ist. Bei der Interpretation solcher Ergebnisse ist äußerste Vorsicht geboten.

  • Einige Anbieter wurden beschuldigt, bei Benchmarks "geschummelt" zu werden - Dinge zu tun, die viel höhere Benchmark-Werte ergeben, die jedoch bei der wahrscheinlichen Arbeitsbelastung noch schlimmer werden. [2]

  • Viele Benchmarks konzentrieren sich ausschließlich auf die Geschwindigkeit der Rechenleistung und vernachlässigen andere wichtige Merkmale eines Computersystems, wie zum Beispiel:
    • Dienstqualitäten, abgesehen von der Rohleistung. Beispiele für nicht gemessene Dienstqualitäten umfassen Sicherheit, Verfügbarkeit, Zuverlässigkeit, Ausführungsintegrität, Wartungsfreundlichkeit, Skalierbarkeit (insbesondere die Fähigkeit, Kapazität schnell und unterbrechungsfrei hinzuzufügen oder neu zuzuordnen) usw. Es gibt oft echte Kompromisse zwischen und zwischen diesen Dienstqualitäten. und alle sind wichtig für Business Computing. Transaction Processing Performance Council-Benchmarkspezifikationen gehen teilweise auf diese Bedenken ein, indem sie ACID-Eigenschaftstests, Regeln zur Skalierbarkeit der Datenbank und Anforderungen an den Servicelevel angeben.

    • Im Allgemeinen messen Benchmarks die Gesamtbetriebskosten nicht. Die Spezifikationen des Transaction Processing Performance Council Benchmarks gehen teilweise auf dieses Problem ein, indem angegeben wird, dass eine Preis- / Leistungskennzahl zusätzlich zu einer Rohleistungskennzahl unter Verwendung einer vereinfachten TCO-Formel angegeben werden muss. Die Kosten sind jedoch notwendigerweise nur ein Teil, und es ist bekannt, dass die Anbieter spezifisch (und nur für) den Preis festsetzen und eine hochspezifische "Benchmark-Spezial" -Konfiguration mit einem künstlich niedrigen Preis entwerfen. Schon eine kleine Abweichung vom Benchmark-Paket führt zu einem viel höheren Preis für die Praxis.

    • Belastung der Anlagen (Raum, Leistung und Kühlung). Wenn mehr Strom verwendet wird, hat ein tragbares System eine kürzere Batterielebensdauer und muss häufiger aufgeladen werden. Ein Server, der mehr Strom und / oder Speicherplatz verbraucht, kann möglicherweise nicht in vorhandene Ressourcenressourcen des Rechenzentrums einschließlich Kühlungsbegrenzungen passen. Es gibt echte Kompromisse, da die meisten Halbleiter mehr Strom benötigen, um schneller schalten zu können. Siehe auch Leistung pro Watt.

    • In einigen eingebetteten Systemen, in denen Speicher mit erheblichen Kosten verbunden ist, können bessere Codedichten die Kosten erheblich senken.

  • Hersteller-Benchmarks neigen dazu, die Anforderungen für Entwicklung, Test und Leistung zu ignorieren Kapazität für die Notfallwiederherstellung. Die Hersteller berichten nur gerne, was für die Produktionskapazität knapp sein könnte, um den anfänglichen Anschaffungspreis so niedrig wie möglich zu erscheinen.

  • Benchmarks haben Schwierigkeiten, sich an weit verteilte Server anzupassen, insbesondere an Server, die besonders empfindlich auf Netzwerktopologien reagieren. Insbesondere das Aufkommen des Grid-Computing erschwert das Benchmarking, da einige Workloads "Grid-friendly" sind, andere dagegen nicht.

  • Benutzer können eine sehr unterschiedliche Wahrnehmung der Leistung haben, als Benchmarks vermuten lassen. Benutzer schätzen vor allem die Vorhersagbarkeit - Server, die Service-Level-Vereinbarungen immer erfüllen oder übertreffen. Benchmarks betonen eher mittlere Werte (IT-Perspektive) als maximale Reaktionszeiten im Worst-Case (Echtzeit-Computing-Perspektive) oder niedrige Standardabweichungen (Benutzerperspektive).

  • Viele Serverarchitekturen verschlechtern sich dramatisch im Hochbereich (nahe 100%). ) Nutzungsniveaus - "fallen von einer Klippe" - und Benchmarks sollten diesen Faktor berücksichtigen (aber oftmals nicht). Insbesondere Anbieter neigen dazu, Server-Benchmarks bei einer kontinuierlichen Nutzung von etwa 80% - einer unrealistischen Situation - zu veröffentlichen und dokumentieren nicht, was mit dem Gesamtsystem geschieht, wenn Nachfragespitzen jenseits dieses Niveaus auftreten.

  • Viele Benchmarks konzentrieren sich auf eine Anwendung oder sogar eine Anwendungsebene, unter Ausschluss anderer Anwendungen. Die meisten Rechenzentren implementieren Virtualisierung aus verschiedenen Gründen in großem Umfang, und Benchmarking holt immer noch die Realität ein, in der mehrere Anwendungen und Anwendungsebenen gleichzeitig auf konsolidierten Servern ausgeführt werden.

  • Es gibt nur wenige (wenn überhaupt) qualitativ hochwertige Benchmarks helfen, die Leistung des Batch-Computing zu messen, insbesondere das gleichzeitige Batch- und Online-Computing mit hohem Volumen. Batch-Computing konzentriert sich in der Regel viel mehr auf die Vorhersagbarkeit der ordnungsgemäßen Erledigung von Aufgaben mit langer Laufzeit vor Fristen wie dem Monatsende oder dem Ende des Geschäftsjahres. Viele wichtige Kerngeschäftsprozesse sind chargenorientiert und werden wahrscheinlich immer eine Rolle spielen, wie zum Beispiel die Abrechnung.

  • Benchmarking-Institutionen ignorieren oft oder folgen nicht der grundlegenden wissenschaftlichen Methode. Dies schließt ein, ist aber nicht beschränkt auf: kleine Stichprobengröße, fehlende variable Kontrolle und begrenzte Wiederholbarkeit der Ergebnisse. [3]

Typen von Benchmarks [ edit


  1. Real-Programm
    • Textverarbeitungssoftware

    • Werkzeugsoftware von CAD

    • Anwendersoftware (d. H .: MIS)

  2. Component Benchmark / Microbenchmark
    • Die Kernroutine besteht aus einem relativ kleinen und spezifischen Code.

    • Die Leistung eines Computers kann mit den Grundkomponenten [4]

    • zur automatischen Erkennung von Hardware-Parametern des Computers wie der Anzahl verwendet werden von Registern, Cachegröße, Speicherlatenz usw.

  3. Kernel
    • enthält Schlüsselcodes

    • die normalerweise vom aktuellen Programm abstrahiert werden.

    • beliebte Kernel: Livermore-Schleife

    • Linpack-Benchmark (enthält grundlegende lineare Algebra-Subroutine, die in der Sprache FORTRAN geschrieben ist)

    • Die Ergebnisse sind in Mflop / s dargestellt.

  4. Synthetischer Benchmark
    • Verfahren zur Programmierung eines synthetischen Benchmarks:
      • Statistiken aller Arten von Operationen aus vielen Anwendungsprogrammen entnehmen.

      • erhalten einen Anteil von jeder Operation.

      • Schreibprogramm basierend auf dem oben angegebenen Anteil.

    • Typen von synthetischen Benchmarks sind:

    • Dies waren die ersten Computer-Benchmarks für allgemeine Industrienormen. Sie erhalten auf modernen Pipeline-Computern nicht unbedingt hohe Punktzahlen.

  5. I / O-Benchmarks

  6. Datenbank-Benchmarks
    • Messung des Durchsatzes und der Antwortzeiten von Datenbankverwaltungssystemen (DBMS)

  7. Parallele Benchmarks
    • verwendet auf Maschinen mit mehreren Kernen und / oder Prozessoren oder Systemen, die aus mehreren Maschinen bestehen

Gemeinsame Benchmarks [ edit


Industriestandard (geprüft und überprüfbar) edit ]


Open-Source-Benchmarks [ bearbeiten


  • AIM Multiuser Benchmark: Bestehend aus einer Liste von Tests, die gemischt werden könnten, um einen "Load Mix" zu erstellen, der eine bestimmte Computerfunktion auf einem beliebigen UNIX-Betriebssystem simuliert.

  • Bonnie ++: Benchmark für Dateisysteme und Festplatten [19659021] BRL-CAD: Plattformübergreifende, architekturunabhängige Benchmark-Suite basierend auf Multithread-Raytracing-Leistung. baseline gegen ein VAX-11/780; und wird seit 1984 zur Bewertung der relativen CPU-Leistung, der Unterschiede zwischen Compilern, Optimierungspegeln, Kohärenz, Architekturunterschieden und Betriebssystemunterschieden verwendet.

  • Collective Knowledge - anpassbares, plattformübergreifendes Framework zum Crowdsource-Benchmarking und Optimierung von Benutzer-Workloads (z von freiwilligen Helfern gelieferte Hardware

  • Coremark: Benchmark für Embedded Computing

  • Benchmark für Datenspeicherung: Fortsetzung der LDBC-Benchmark für Social Network aus dem Hobbit-Projekt

Không có nhận xét nào:

Đăng nhận xét