Floating Point Operations Per Second

Floating Point Operations Per Second

Einheiten der Gleitkommarechenleistung mit Vorsätzen nach SI.
kFLOPS KiloFLOPS = 103 FLOPS
MFLOPS MegaFLOPS = 106 FLOPS
GFLOPS GigaFLOPS = 109 FLOPS
TFLOPS TeraFLOPS = 1012 FLOPS
PFLOPS PetaFLOPS = 1015 FLOPS
EFLOPS ExaFLOPS = 1018 FLOPS

Floating Point Operations Per Second (kurz FLOPS; englisch für Gleitkommaoperationen pro Sekunde) ist ein Maß für die Leistungsfähigkeit von Computern[1] oder Prozessoren und bezeichnet die Anzahl der Gleitkommazahl-Operationen (Additionen oder Multiplikationen), die von ihnen pro Sekunde ausgeführt werden können.

Häufig wird als FLOP eine Gleitkommazahlen-Operation (englisch floating-point operation) bezeichnet, wodurch vereinzelt auch die Variante FLOP/s auftaucht, beide Varianten sind allerdings gleichbedeutend.

Beschreibung

Die Anzahl der Gleitkommaoperationen ist nicht notwendigerweise direkt zur Taktgeschwindigkeit des Prozessors proportional, da – je nach Implementierung – Gleitkommaoperationen unterschiedlich viele Taktzyklen benötigen. Vektorprozessoren führen in jedem Takt bis zu einige tausend Operationen aus. So erreichen aktuelle Grafikkarten, die als Vektorprozessoren arbeiten, Rechenleistungen bis zu 4,64 TeraFLOPS (ATI Radeon HD 5970), was auch die Motivation für GPGPU ist.

Durch die FLOPS wird die gesamte Rechnerarchitektur, bestehend aus Hauptspeicher, Bus, Compiler, gemessen, nicht die reine Prozessorgeschwindigkeit. Meist wird, ebenso wie bei der Einheit IPS, eine Best-Case-Abschätzung oder gar ein nur theoretisch möglicher Wert angegeben.

Berechnung

Die theoretische Spitzenleistung (Theoretical Peak Performance) eines einzelnen Rechenknotens eines CPU-basierten Hochleistungsrechners lässt sich wie folgt berechnen:

GFLOPS = (CPU-Takt in GHz) × (Anzahl der CPU-Kerne) × (CPU-Instruktionen pro Takt) × (Anzahl der CPU im Rechenknoten).

Dabei ist zu beachten, dass bei verschiedenen Prozessorarchitekturen die ausgeführten Instruktionen pro Sekunde variieren können. So haben z. B. Intel X5600 Series CPUs und AMD 6100/6200 Series CPUs vier Instruktionen per Zyklus und Intel E5-2600 Series CPUs acht Instruktionen per Zyklus.

Beispiel 1:

Zwei-Sockel-Server mit Intel X5675 (3,06 GHz, 6 Kerne)

3,06 × 6 × 4 × 2 = 144,88 GFLOPS

Beispiel 2:

Zwei-Sockel-Server mit Intel E5-2670 (2,6 GHz, 8 Kerne)

2,6 × 8 × 8 × 2 = 332,8 GFLOPS

Da es sich bei den Werten nur um die theoretische Spitzenleistung handelt und in einem Rechensystem noch ein gewisser Verwaltungsaufwand anfällt, wird zusätzlich die bereinigte Spitzenleistung (Adjusted Peak Performance, APP)) ermittelt. Sie liegt in dieser Architektur bei ca. 30 %.

Rechenleistung von Computersystemen

Der erste in der Praxis einsetzbare frei programmierbare Rechner, die elektromechanische Zuse Z3 aus dem Jahre 1941, schaffte knapp zwei Additionen pro Sekunde und damit 2 FLOPS. Andere Operationen dauerten jedoch teilweise wesentlich länger.

Die FLOPS eines Computers werden durch definierte Programmpakete (Benchmarks, etwa LINPACK oder Livermore Benchmark) bestimmt.

In der Rangliste TOP500 werden die 500 schnellsten Computersysteme, gemessen an ihren FLOPS mit dem LINPACK-Benchmark, aufgeführt.

Die über 480.000 aktiven Computer der Berkeley Open Infrastructure for Network Computing bringen es derzeit (Stand: Juni 2012)[2] auf eine durchschnittliche Leistung von mehr als 6 PetaFLOPS, was 30 % der Rechenleistung des derzeit schnellsten Supercomputers Titan mit 22 PetaFLOPS und mehr als der fünffachen Rechenleistung des IBM Roadrunners entspricht.

Wie auch PCs werden Supercomputer stetig kleiner. Auch das Verhältnis von Rechenleistung zum Bedarf an elektrischer Leistung wird besser, wobei die gesamte Energiezufuhr eher ansteigt. So benötigte der in der TOP500-Liste 11/2005 führende BlueGene/L von IBM für seine Leistung von rund 280 TeraFLOPS nur 70  Fläche und 1770 kW elektrische Leistung, was im Vergleich zum drei Jahre älteren Earth Simulator (35,86 TeraFLOPS) mit 3000 m² und 6000 kW eine deutliche Verbesserung darstellt.

Ein anderes Beispiel aus der Praxis: der im Juli 2005 schnellste Computer Deutschlands, ein 57 Mio. Euro teurer NEC mit 576 Hauptprozessoren am Hochleistungsrechenzentrum Stuttgart (HLRS), brachte es auf bis zu 12,7 TeraFLOPS, und wurde optimistisch als 5000 mal schneller als ein „normaler“ PC bezeichnet.[3] Die Betriebskosten (ohne Anschaffung) einer solchen Anlage beliefen sich nach Betreiberaussage inklusive Personal auf fünf bis sechs Euro pro Stunde, bei einem PC wurden vergleichsweise 30 bis 40 Cent pro Stunde angesetzt. Allerdings hätten aufwändige Simulationen auf einem PC viel zu lange gedauert und ein Cluster aus Standard PCs wäre ungleich teurer gewesen. Wegen der hohen Anschaffungskosten wurde eine derartig leistungsfähige Anlage zu einem Stundensatz von ca. 3000 Euro für das Gesamtsystem vermietet.[4]

Ein interessanter Vergleich: Bereits im März 2006 wurde der neueste „schnellste“ Computer Deutschlands in Jülich in Betrieb genommen, der JUBL (Jülicher Blue Gene/L). Mit 45,6 TeraFLOPS bot er zu diesem Zeitpunkt als sechstschnellster Computer der Welt die Rechenleistung von 15.000 „normalen“ zeitgemäßen PCs. Interessant ist für die weitere Entwicklung die Einschätzung der Rechenzeit-Bedarfsentwicklung durch den Vorstandsvorsitzenden des Jülicher Forschungszentrums (03/2006): „Die Nachfrage nach Rechenzeit wird in den nächsten fünf Jahren noch um den Faktor 1000 steigen“.

Um die Leistung einordnen zu können: ein normaler PC mit einem Pentium-4-Prozessor bei einer Taktfrequenz von drei Gigahertz kann nach Angaben von IBM etwa sechs GigaFLOPS erreichen.

Beispiele der GFLOP-Werte an einigen CPUs[5]
LINPACK 1kx1k (DP) Höchstleistung
(in GFLOPS)
Durchschnittsleistung
(in GFLOPS)
Effizienz
(in %)
Cell, 1 SPU, 3,2 GHz 1,83 1,45 79,23
Cell, 8 SPUs, 3,2 GHz 14,63 9,46 64,66
Pentium 4, 3,2 GHz 6,4 3,1 48,44
Pentium 4 + SSE3, 3,6 GHz 14,4 7,2 50,00
Core i7, 3,2 GHz, 4 Kerne 51,2 33,0 (HT enabled) [6] 64,45
Core i7, 3,47 GHz, 6 Kerne 83,2
Core i7 Sandy-Bridge, 3,4 GHz, 4 Kerne 102,5 92,3 90,05
Itanium, 1,6 GHz 6,4 5,95 92,97

Kritik

Die Anzahl der FLOPS ist wie die Einheit MIPS eine irreführende Metrik[7] für den Vergleich zweier Prozessorarchitekturen. Ein RISC-Prozessor kann häufig wesentlich mehr Operationen pro Sekunde ausführen, als ein vergleichbarer CISC-Prozessor, da die Instruktionsausführungszeit für RISC-Operationen meist unter denen von CISC-Operationen liegen. Für dieselbe Aufgabe benötigen RISC-Prozessoren jedoch mehr Operationen als CISC-Prozessoren. Ebenso unterscheidet sich die Leistungsfähigkeit von zwei Rechnersystemen A und B die jeweils ein FLOPS berechnen können, wenn Prozessor A ein 32 Bit ist und Prozessor B ein 64 Bit. Prozessor B kann größere Zahlen pro Gleitkommaoperation verarbeiten und braucht daher weniger Operationen um große Zahlen zu verarbeiten.

Siehe auch

Quellenangaben