Leistungsbewertung und Profiling

Das Programm ist langsam, doch die CPU-Auslastung war mit etwa 20 % niedrig. Was ist die wahrscheinlichste Ursache?

  1. ADie CPU-Berechnung ist zu schnell
  2. BDie Befehlszahl des Programms ist zu klein
  3. CEs wird lange ohne Nutzung der CPU gewartet, z. B. auf Platten- oder Netzwerk-Ein-/Ausgabe oder auf Sperren (Locks)
Antwort und Erläuterung anzeigen

Antwort: C. Es wird lange ohne Nutzung der CPU gewartet, z. B. auf Platten- oder Netzwerk-Ein-/Ausgabe oder auf Sperren (Locks)

Ist die CPU-Auslastung niedrig und das Programm dennoch langsam, wird vermutlich die meiste Zeit auf etwas außerhalb der CPU gewartet: Lesen und Schreiben der Platte, Antwort des Netzwerks, Freigabe einer Sperre durch einen anderen Thread usw. In diesem Fall bringen eine schnellere CPU oder die Optimierung des Rechencodes kaum etwas. Wirksam sind das Bündeln von Ein-/Ausgabe, Asynchronität, sodass während des Wartens andere Verarbeitung voranschreitet, und kleinere Sperrbereiche.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Leistungsbewertung und Profiling

  1. Um zu prüfen, ob ein Programm rechen- oder speichergebunden ist, wurde die Ausführungszeit bei unterschiedlicher CPU-Frequenz gemessen. Welches Ergebnis ist bei Speichergebundenheit im Allgemeinen zu erwarten?
  2. Welche Richtung zur Leistungssteigerung ist richtig, wenn sich im Roofline-Modell zeigt, dass eine Verarbeitung im durch die Speicherbandbreite begrenzten Bereich liegt?
  3. Was misst der STREAM-Benchmark hauptsächlich?
  4. Welche Methode zur Untersuchung der Skalierbarkeit eines parallelen Programms ist am zutreffendsten?
  5. Bei paralleler Ausführung auf 8 Kernen war es 6-mal schneller als mit einem Kern. Wie groß ist die parallele Effizienz?