FLOPS und andere Leistungen

Was ist Performance in der IT?

| Autor / Redakteur: Filipe Pereira Martins und Anna Kobylinska* / Ulrike Ostler

Performance ist in der IT nur scheinbar fest definiert. Doch oft ist Performance Ermessenssache und zudem gibt es verschiedene Leistungsparameter, die sich heranziehen lassen.
Performance ist in der IT nur scheinbar fest definiert. Doch oft ist Performance Ermessenssache und zudem gibt es verschiedene Leistungsparameter, die sich heranziehen lassen. (Bild: © djama - stock.adob.com)

Der Begriff Leistung (engl. performance) entstammt der Welt der Physik. Hier wird eine Leistung (P für „performance“) als ein Quotient aus der verrichteten Arbeit (W für „work“) pro Zeitintervall (t für „time“) ausgedrückt. Doch hier enden auch die Parallelen. Denn was die Performance eines Computersystems in der Praxis ausmacht, ist angesichts einschränkender Faktoren wie Kosten oder Wärme-Abgabe in gewissen Grenzen Ermessenssache.

In der Physik gibt es für die Leistung genau zwei relevante, strikt genormte Einheitensysteme: das Internationale Einheitensystem SI und das CGS-Einheitensystem. Diese zwei alternativen Sammlungen von Maßeinheiten für die verschiedenen physischen Größen lassen sich ineinander fehlerfrei und stets zuverlässig umrechnen.

Zwar gibt es eine Vielzahl von Möglichkeiten, konkrete Leistungsmerkmale eines IT-Systems durch verschiedene Messwerte zum Ausdruck zu bringen, doch handelt es sich dabei oft um relative Größen, die noch von anderen Einflussfaktoren abhängen. Aus diesem Grunde wird die Performance eines Computersystems entweder in Relation zu einem Referenzsystem oder zu einem bestimmten Workload gemessen.

Typische Messwerte der Performance eines Computersystems beinhalten:

  • die Anzahl von Rechenoperationen pro Sekunde (gemessen in OPS, Eng. Operations per Second, oder — bei Gleitkommaoperationen — in FLOPS, Eng. Floating Point Operations Per Second),
  • die Latenz: die Zeit zwischen dem Start eines Datentransfers und seiner Beendigung (gemessen in Zeiteinheiten),
  • die Datentransferrate oder den Datendurchsatz oder die Datenübertragungsrate,
  • - in Netzwerken: die Netto-Datenmenge, die in einer gegebenen Zeit über ein Kanal übertragen werden kann), gemessen in Bit pro Sekunde,
  • - in Speichersystemen: die Datenmenge, die in einer gegebenen Zeit auf das betreffende Speichermedium geschrieben oder davon gelesen wird (gemessen in Bytes pro Sekunde), oder die Anzahl der Eingabe-/Ausgabe-Operationen pro Zeiteinheit (gemessen in ganzzahligen IOPs, also Input/Output-Operationen pro Sekunde),
  • die Bandbreite einer Datentransportverbindung (engl. bandwidth): die Breite des Intervalls zwischen der unteren und der oberen Grenzfrequenz in einem Frequenzspektrum (gemessen in Hz); in Kabelnetzwerken ist der Begriff Bandbreite gleichbedeutend der Datentransferrate.

Eine Kombination dieser Größen beschreibt die Leistung eines Computersystems unter der gegebenen Arbeitslast.

Rechenleistung von Computersystemen: FLOPS

Die Leistungsfähigkeit eines Computersystems wird durch eine Vielzahl von Leistungsfaktoren beeinflusst, darunter die Speicherhierarchie, die Besonderheiten der Befehlssatzarchitektur (ISA, Instruction Set Architecture), die auszuführenden Befehlstypen und ihre Reihenfolge. Messwerte wie IPS (Instructions per second), welche diese Besonderheiten außer Acht lassen, können daher schlicht irrelevante Resultate zu Tage fördern.

Computersysteme führen verschiedene Arten von Anweisungen aus, darunter:

  • Ganzzahl- (Engl. integer),
  • Verzweigungslogik- (branching logic) und
  • Gleitkomma-Anweisungen (floating point instructions).

Die Unterschiede in der Leistung eines Computersystems bei verschiedenartigen Workloads reflektieren unterschiedliche Zusammensetzungen dieser Operationen. Die Rate der Ausführung dieser Operationen steht nicht in einem direkten Zusammenhang mit der Taktrate einer CPU, da einige Anweisungen mehrere Prozessorzyklen benötigen und in anderen Fällen mehrere Befehle gleichzeitig abgearbeitet werden.

Dieser Aspekt der Prozessorperformance wird in Instruktionen pro Prozessorzyklus gemessen (IPC, engl. instructions per cycle) oder als Kehrwert ausgedrückt, in Prozessorzyklen pro Befehl (CPI, engl. clock cycles per instruction). Diese Maßeinheit ist ein arithmetisches Mittel der Anzahl der von einem Prozessor in einem Taktzyklus ausführbaren Befehle. Eine obere Grenze für einen IPC-Wert gibt die Skalarität eines Prozessors an.

Der IPC Wert (der durch ein arithmetische Mittel gebildet wurde) multipliziert mit der Taktfrequenz ergibt die Anzahl der ausgeführten Befehle pro Sekunde. Da einige Hersteller die Taktfrequenz allerdings unterschiedlich rechnen, sind Einheiten wie MIPs (millions of instructions per second) zum Vergleichen der Performance verschiedener Prozessorarchitekturen denkbar ungeeignet. Die vielen Herausforderungen beim Ermitteln der tatsächlichen Leistung von IT-Systemen bei gegebenen Workloads lassen sich auf einige grundlegende architektonische Unterschiede zwischen den betreffenden Lösungen zurückführen.

Im Datencenter-Umfeld gibt es neben dem Platzhirsch Intel x86 (Xeon) nach wie vor noch eine Vielzahl anderer CPU-Prozessorfamilien: AMD, IBM Power, Spark (von Oracle), ARMv8, CRAY und andere. Hinzu kommen KI-Beschleuniger und andere Prozessorarchitekturen für Spezialaufgaben:

  • GPUs (Graphics Processing Units) für KI-Workloads und Bitcoin-Mining im Rechenzentrum,
  • DSPs (Digital Signal Processors) für komplexe mathematische Berechnungen wie beispielsweise Fast-Fourier- oder Laplace-Transformationen zur Verarbeitung von analogen Signalen,
  • FPGAs (Field-Programmable Gate Array) für die flexible Programmierung von KI-Workloads.
Welche Hardware eignet sich besser zur KI-Beschleunigung?

GPUs, DSPs, FPGAs oder eigene CPUs?

Welche Hardware eignet sich besser zur KI-Beschleunigung?

06.06.18 - Hardwarebeschleuniger haben den praktikablen Einsatz von Künstlicher Intelligenz in IT und Industrie in greifbare Nähe gerückt. Doch welche Technologie eignet sich hierfür besser: GPUs, DSPs, programmierbare FPGAs oder eigene, dedizierte Prozessoren?Sebastian Gerstl vom Partnerportal „Elektronik Praxis“ hat Hardwarehersteller und Embedded-Experten zu diesem Thema befragt. lesen

Fließkomma-Arithmetik (auch Gleitkomma-Arithmetik genannt) wird für sehr große oder sehr kleine reelle Zahlen und solche Berechnungen benötigt, die einen großen dynamischen Bereich abdecken. Die Performance eines Prozessors bei diesen Operationen wird in FLOPS (Floating Point Operations Per Second) gemessen.

Konkretes Beispiel: Der zurzeit schnellste Supercomputer der Welt, der Summit im US-Amerikanischen Forschungsinstitut Oak Ridge National Laboratory, kommt auf eine maximale Spitzenleistung (Peak-Performance) in Höhe von 200 PetaFLOPS und 3,3 ExaOPS bei KI-Workloads. Das Präfix „Peta“ steht für den Faktor von 10 hoch 15 (10^15) und Exa für den Faktor von 10 hoch 18 FLOPS (10^18).

Die Anzahl der Gleitkommaoperationen pro Sekunde ist nicht direkt proportional zu der Taktgeschwindigkeit des Prozessors, da Gleitkommaoperationen je nach Implementierung unterschiedlich viele Taktzyklen in Anspruch nehmen können. Zur Bestimmung der FLOPS-Leistung eines Computers kommen spezialisierte Softwaretools zum Einsatz, die sogenannten Benchmarks (siehe dazu den Bericht „Was ist ein Performance-Benchmark (wert)?“).

Netzwerk-Performance: Datendurchsatz versus Latenz

Die zwei grundlegenden Messwerte der Netzwerkleistung sind Latenz und Datendurchsatz. Bei der Latenz handelt es sich um die Zeit zwischen dem Start eines Datentransfers (dem Versenden eines Datenpakets) und seiner Beendigung (dem Empfang des Datenpakets).

Der Datendurchsatz ist die Gesamtsumme der Daten, die in einer bestimmten Zeit übertragen werden. Bei der Übertragung von großen Datenpaketen lässt sich ein höherer Datendurchsatz erzielen als bei der Übertragung derselben Datenmenge in vielen kleineren Paketen. Dieser Effekt hängt zum Teil mit der geringeren Anzahl von Headern zusammen, zum Teil aber auch mit der verringerten Latenz beim Start des Übertragungsvorgangs und mit der Gesamtverzögerung durch das Anhalten von Datenpaketen in der Warteschlange.

Beim Streaming, also: bei der Übertragung von Datenpaketen in einer kontinuierlichen Abfolge, wirkt sich die Latenz kaum auf den Datendurchsatz aus. Wenn der Absender aber nach jedem Paket auf eine Empfangsbestätigung warten muss, sinkt der Datendurchsatz erheblich eben auf Grund der Latenz.

Performance von Speichersystemen: Datentransferrate versus IOPs

Bei IOPS (Anzahl der Ein-/Ausgabe-Operationen pro Sekunde, Eng. Input/Output Operations Per Second) handelt es sich um eine gängige Leistungsmetrik, welche die Performance von Computerspeichergeräten wie HDDs, SSDs und SANs zum Ausdruck bringt. Die Metrik misst die Anzahl der durchführbaren Lese- und Schreibvorgänge auf ein Speicher- oder ein Netzwerkgerät. In IOPs lassen sich sowohl Vorgänge als auch nur die Lese- bzw. nur die Schreibzugriffe erfassen.

Generell gilt: Je höher der IOPs-Wert ausfällt, umso performanter ist das betreffende System, sofern alle anderen Variablen in beiden Szenarien identisch ausfallen. Darin liegt ein prinzipielles Problem mit dieser Metrik begründet, nämlich die Tatsache, dass IOPs von einer Vielzahl anderer Kenndaten abhängen. Dazu zählen:

  • Größe der verwendeten Datenblöcke,
  • Mischung aus Lese-/Schreibaktivitäten,
  • Zufälligkeit der Abfolge verschiedener Anweisungen an das Speichermedium.

Aus eben diesem Grunde sind die IOPs auf ein und demselben System bei verschiedenen Arten von Workloads im Rechenzentrum in der Regel nicht miteinander vergleichbar. Mit dem Einzug von Flash-Speicher ins Datencenter haben IOPs als ein Maßstab für die Leistungsfähigkeit eines Storage-Systems an Bedeutung verloren.

*Die Autoren

Die Autoren des Artikels, Filipe Pereira Martins und Anna Kobylinska arbeiten für McKinley Denali Inc. (USA).

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45413069 / Definitionen)