Speedup

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Speedup (englisch für Beschleunigung) ist ein Begriff aus der Informatik und beschreibt mathematisch den Zusammenhang zwischen der seriellen und der parallelen Ausführungszeit eines Programmteils.

Definition[Bearbeiten]

Der Speedup parallel bearbeiteter Operationen mit unterschiedlichen Eigenschaften auf bis zu 16 CPUs

Der Speedup ist definiert durch die folgenden beiden Formeln:

S_p = \frac{T_1}{T_p}
S_p = \frac{T_1}{T_1 \times ((1 - f)+\frac{f}{p})}

wobei gilt:

  • p ist die Anzahl von Prozessoren
  • S_p ist der theoretische Speedup, der erreicht werden kann bei Ausführung des Algorithmus auf p Prozessoren
  • T_1 ist die Ausführungszeit auf einem Ein-Prozessor-System
  • T_p ist die Ausführungszeit auf einem Mehrprozessorsystem
  • f (engl. fraction) ist der Anteil von T_1, welcher parallel ausgeführt werden kann

Wertebereich[Bearbeiten]

Im Idealfall gilt

S_p = p

sodass also die Ausführungszeit auf p Prozessoren genau p-mal schneller ist, als auf nur einem Prozessor. Da jedoch ein Algorithmus nie komplett zu 100 % parallel ausgeführt werden kann, weil es immer einen sequenziellen nicht parallelisierbaren Anteil gibt, ist der Idealfall nie erreichbar (siehe Amdahlsches Gesetz).

Der Wertebereich lässt sich daher festlegen mit

1 \le S_p \le p

wobei der Speedup nur dann 1 ist, falls der komplette Algorithmus nicht parallelisierbar ist und daher auf mehreren Prozessoren genauso schnell abgearbeitet wird, wie auf nur einem Prozessor.

Siehe auch[Bearbeiten]

Literatur[Bearbeiten]