Was sind FLOPS?

... komplette Frage anzeigen

1 Antwort

"Flops mit IT-Bezug" sind solche Sachen wie der Zune von MS oder de-Mail von der Telekom.

Aber vermutlich geht es dir um "Floating Point Operations Per Second". :)

Das ist die durchschnittliche Anzahl an Gleitpunktoperationen pro Sekunde, die ein System verarbeiten kann.

Unterschieden wird meist zwischen einfacher und doppelter Genauigkeit, also meist 32- oder 64-Bit breiten Werte. (wobei die intern oft mit 64, 80 oder 128 Bit gerechnet werden, um Rundungsfehler zu verringern)

Viele Programmiersprachen bieten standardmäßig nur Gleitpunktoperationen ihrer Mathebibliothek mit 64-Bit (doppelte Genauigkeit) an, auch wenn man bei vielen Anwendungsfällen mit 32-Bit (einfache Genauigkeit) locker auskommt.

Du kannst ja selber mal ein Benchmark mit C++ basteln, und in einer Schleife den Sinus eines Float-, Double- und Long-Double-Wertes ausrechnen. Das ganze lässt du unter einem Profiler laufen und dann lass dich mal von dem Ergebnis überraschen. Bei Java z.B. ist man gezwungen, 64-Bit Werte einzusetzen, da es überhaupt keine entsprechenden Methoden für einfache Floats gibt. Das hat die Konsequenz, dass viele Gleitpunkt-Berechungen in Java oft unnötig vier oder fünf mal länger dauern, als bei C++, und man auch keine Möglichkeit einer Optimierung hat.

Zurück zu FLOPS: Oftmals werden auch Gleitpunktpunkt-Werte mit halber Genauigkeit oder sogar noch weniger benannt. Diese heißen dann Minifloats und spielen vor allem bei Grafischen Anwendungen (Spielen, GPU-Sachen, ...) eine Rolle. Leistungsfähige Systeme bieten auch deutlich größere Floats, als man sie auf Desktop PCs findet, aber das sprengt jetzt das Thema.

FLOPS bedeutet einfach nur, wie viele Gleitpunktoperationen pro Sekunde berechnet werden können, wobei immer auch eine Angabe zur Genauigkeit auftauchen sollte. :)

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von TeeTier
20.12.2015, 14:56

PS: Um nochmal etwas klarzustellen ...

Die Berechnung des Sinus eines Gleitpunktwertes zählt nicht zu FLOPS. Damit sind meist "einfache" Operationen wie Addition, Subtraktionen oder Multiplikation gemeint. (Aus bestimmten Gründen Divisionen weniger!)

Ich habe mich da leider mehrdeutig ausgedrückt, deshalb bitte unterscheiden zwischen den "höheren" und "primitiveren" Berechnungen. Von ersterem war im Benchmark die Rede, um Letztere geht es bei den FLOPS. :)

Im Übrigen bietet jede moderne CPU eine Instruktion für Sinus, Cosinus, usw. aber fast alle Standardbibliotheken stellen diese Berechnungen mit ihrem eigenen - aus mehreren primitiven Instruktionen bestehenden - Algorithmus an.

Das liegt daran, dass die Implementierung in der CPU recht ineffizient ist, und man das Ganze schneller auf herkömmliche Art und Weise berechnen kann. Interessant, oder? Darüber hinaus gibt es noch eine ganze Reihe andere CPU-Instruktionen, die man in freier Wildbahn nicht antrifft, einfach weil sie verdammt langsam sind. Aber ich schweife schon wieder ab ... :)

1

Was möchtest Du wissen?