Leistungsbewertung und Profiling

Misst man die Zeit je Element beim wiederholten Lesen eines Arrays bei schrittweise wachsender Arraygröße, steigt die Zeit bei bestimmten Größen stufenweise an. Welche Begründung ist richtig?

  1. AWeil die CPU-Frequenz bei größeren Arrays stets sinkt
  2. BWeil Daten jedes Mal, wenn das Array die Kapazität von L1-, L2- und L3-Cache nacheinander überschreitet, aus einem langsameren Speicher gelesen werden
  3. CWeil sich das Ergebnis von Additionen mit der Arraygröße ändert
Antwort und Erläuterung anzeigen

Antwort: B. Weil Daten jedes Mal, wenn das Array die Kapazität von L1-, L2- und L3-Cache nacheinander überschreitet, aus einem langsameren Speicher gelesen werden

Solange das Array klein ist, passt es in den L1-Cache und wird schnell gelesen; wird die L1-Kapazität überschritten, wird aus L2 gelesen, bei Überschreiten von L2 oder L3 aus dem Hauptspeicher, und jedes Mal steigt die Zeit je Element stufenweise an. Mit dieser Messweise lassen sich Cache-Kapazitäten und deren jeweilige Geschwindigkeit grob bestimmen. Es wird auch verständlich, warum es für die Leistung stark ins Gewicht fällt, die vom Programm wiederholt genutzte Datengröße (Working Set) im Cache unterzubringen.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Leistungsbewertung und Profiling

  1. Welche Grundformel für die Ausführungszeit eines Programms auf der CPU ist richtig?
  2. Ein Programm mit 1 Milliarde Befehlen wird auf einer CPU mit mittlerer CPI von 2 und 2 GHz Taktfrequenz ausgeführt. Wie groß ist die Ausführungszeit?
  3. Durch eine Änderung im CPU-Entwurf stieg die Taktfrequenz auf das 1,5-Fache, doch auch die CPI auf das 1,2-Fache (gleiche Befehlsanzahl). Um das Wievielfache wird die Ausführung schneller?
  4. Durch eine neue Compileroptimierung sank die Zahl der ausgeführten Befehle um 20 %, doch die mittlere CPI stieg um 10 % (gleiche Frequenz). Welche Aussage zur Wirkung dieser Optimierung ist richtig?
  5. Die Befehle eines Programms verteilen sich auf Ganzzahloperationen 50 % (CPI 1), Load und Store 30 % (CPI 2) und Verzweigungen 20 % (CPI 5). Wie groß ist die mittlere CPI?