Prestatiemeting en profiling

Leer met meerkeuzevragen over uitvoeringstijd = aantal instructies × CPI × cyclustijd, berekeningen met de wet van Amdahl, aandachtspunten bij benchmarks, prestatiemeters en het isoleren van knelpunten.

Oefen 10 vragenWillekeurige vragen uit dit onderwerp · ongeveer 5 minuten Dit onderwerp oefenenAlle vragen over dit onderwerp in willekeurige volgorde Zwakke vragenAlleen de laatst fout beantwoorde vragen opnieuw oefenen

Parallelle speedup →

Prestatiemeting en profiling: kernpunten

De snelheid van een programma wordt bepaald door het product van het aantal uitgevoerde instructies, het gemiddelde aantal cycli per instructie (CPI) en de duur van één cyclus. Verbetering van één factor helpt niet als een andere slechter wordt. De wet van Amdahl leert bovendien dat als slechts een deel van het geheel sneller wordt, het resterende deel de bovengrens van de totale snelheid bepaalt.

Om prestaties juist te vergelijken, moet u letten op de keuze en meetwijze van benchmarks en op de manier van middelen. U leert knelpunten te isoleren, bijvoorbeeld door met prestatiemeters van de CPU cache-misses en branch mispredictions te tellen en met het roofline-model te bepalen of rekenkracht of geheugen de beperking vormt.

Alle vragen over Prestatiemeting en profiling (50)

  1. Welke formule geeft de uitvoeringstijd van een programma op de CPU juist weer?
  2. Een programma van 1 miljard instructies wordt uitgevoerd op een CPU met een gemiddelde CPI van 2 en een klokfrequentie van 2 GHz. Wat is de uitvoeringstijd?
  3. Door een wijziging in het CPU-ontwerp is de klokfrequentie 1,5 keer zo hoog geworden, maar is de CPI ook 1,2 keer zo hoog geworden (hetzelfde aantal instructies). Hoeveel keer zo snel is de uitvoering vergeleken met het origineel?
  4. Door een nieuwe compileroptimalisatie daalt het aantal uitgevoerde instructies met 20 %, maar stijgt de gemiddelde CPI met 10 % (dezelfde frequentie). Welke uitspraak over het effect van deze optimalisatie is juist?
  5. De instructies van een programma bestaan uit 50 % integerberekeningen (CPI 1), 30 % load en store (CPI 2) en 20 % sprongen (CPI 5). Wat is de gemiddelde CPI?
  6. Welke uitspraak over het vergelijken van CPU-prestaties aan de hand van het aantal uitvoerbare instructies per seconde (miljoen instructies per seconde) is juist?
  7. Hoe wordt de versnelling (speedup) die een prestatieverbetering weergeeft juist bepaald?
  8. Een onderdeel dat 50 % van de totale verwerking beslaat, wordt 4 keer zo snel gemaakt. Wat is de totale versnelling (wet van Amdahl)?
  9. Alleen het onderdeel dat 60 % van de totale verwerking beslaat wordt versneld, om het geheel 2 keer zo snel te maken. Hoeveel keer zo snel moet dit onderdeel worden?
  10. Welke les over de aanpak van prestatieverbetering volgt het best uit de wet van Amdahl?
  11. Welke uitspraak over de gedachte achter de wet van Gustafson is juist?
  12. Welk verschil tussen “strong scaling” en “weak scaling” bij de evaluatie van parallelle berekeningen is juist?
  13. Welke aanpak is het meest geschikt bij het beoordelen van computerprestaties met benchmarks?
  14. Welke beschrijving van een standaardbenchmark zoals SPEC CPU is juist?
  15. Waarom wordt het meetkundig gemiddelde vaak gebruikt om de snelheidsverhoudingen van meerdere benchmarks ten opzichte van een referentiecomputer samen te vatten?
  16. Twee programma’s met hetzelfde aantal instructies werden na elkaar uitgevoerd, het ene met een snelheid van 1000 miljoen instructies per seconde en het andere met 500 miljoen instructies per seconde. Wat is de gemiddelde snelheid over het geheel?
  17. Bij het meten van de rekensnelheid met een kleine lus als hierboven bleef de tijd vrijwel 0, ook bij een grote N. Wat is de meest waarschijnlijke oorzaak?
  18. Waarom wordt bij het meten van de uitvoeringstijd van een programma dezelfde meting vaak vele malen herhaald en worden de eerste resultaten weggelaten?
  19. Welke combinatie van probleem en tegenmaatregel is juist wanneer de tijd van een zeer korte bewerking slechts één keer wordt gemeten?
  20. Welk verschil tussen “wandkloktijd” (wall-clock time) en “CPU-tijd” bij het meten van de uitvoeringstijd is juist?
  21. Welke uitleg van doorvoer (throughput) en latentie (latency) van een server is juist?
  22. Waarom wordt bij de evaluatie van de responstijd van een webservice vaak niet alleen het gemiddelde bekeken, maar ook het 99e percentiel (de grens van de langzaamste 1 %)?
  23. Op een server komen 100 verzoeken per seconde binnen en de verwerking van één verzoek duurt gemiddeld 0,2 s (stationaire toestand). Hoeveel verzoeken zijn gemiddeld tegelijk in behandeling in de server (wet van Little)?
  24. Wat gebeurt er met de wachttijd van verzoeken wanneer de bezettingsgraad van een server (het aandeel van de tijd dat deze bezig is) 100 % nadert?
  25. Wat is het juiste doel van het gebruik van een profiler bij het verbeteren van de prestaties van een programma?
  26. Welke kenmerken heeft een profiler volgens de samplingmethode?
  27. Welke uitspraak over een profiler volgens de instrumentatiemethode, waarbij code om de tijd te meten bij de ingang en uitgang van functies wordt ingevoegd, is juist?
  28. Welke uitleg van een hotspot bij prestatieanalyse van programma’s is juist?
  29. Hoe wordt een flame graph, een weergave van profileringsresultaten, juist gelezen?
  30. Welke zaken kunnen bijvoorbeeld worden geteld met de in de CPU ingebouwde prestatietellers (PMU)?
  31. Uit metingen met prestatietellers bleek dat de IPC (aantal instructies per cyclus) van een programma met 0,3 zeer laag was en dat er veel cache-misses in het laatste niveau waren. Welke combinatie van meest waarschijnlijke situatie en tegenmaatregel is juist?
  32. Met prestatietellers bleek dat er zeer veel sprongvoorspellingsfouten zijn. Welke verbetermethode is geschikt?
  33. Wat is bij top-downanalyse (Top-down Microarchitecture Analysis) met prestatietellers de juiste hoofdindeling van het gebruik van de slots waarin de CPU instructies verwerkt?
  34. Een programma was langzaam, hoewel het CPU-gebruik laag was, ongeveer 20 %. Wat is de meest waarschijnlijke oorzaak?
  35. Om te controleren of een programma rekengebonden of geheugengebonden is, werd de uitvoeringstijd gemeten bij een gewijzigde CPU-frequentie. Welk resultaat is bij geheugengebonden programma’s in het algemeen te verwachten?
  36. Wat is de juiste richting om de prestaties te verhogen wanneer met het roofline-model blijkt dat een bewerking zich in het gebied bevindt dat door de geheugenbandbreedte wordt begrensd?
  37. Wat wordt met de STREAM-benchmark hoofdzakelijk gemeten?
  38. Welke methode is het meest geschikt om de schaalbaarheid van een parallel programma te onderzoeken?
  39. Bij parallelle uitvoering op 8 cores werd het programma 6 keer zo snel als met 1 core. Wat is de parallelle efficiëntie?
  40. Hoe heet het verschijnsel waarbij de voorzieningen voor prestatiemeting het gedrag van het te meten programma zelf veranderen?
  41. Welke aanpak is het meest geschikt bij het verbeteren van de prestaties van een programma?
  42. Bij een programma dat grote hoeveelheden gegevens verwerkt: welke verbetering levert waarschijnlijk de grootste versnelling op?
  43. Wat is het juiste doel van het bij elke wijziging automatisch uitvoeren en vastleggen van benchmarks bij softwareontwikkeling?
  44. Bij het meten van benchmarks op een laptop varieerde het resultaat voor hetzelfde programma elke keer sterk. Welke combinatie van mogelijke oorzaak aan de CPU-kant en tegenmaatregel is juist?
  45. Waarom worden bij het meten van prestaties op multicore- en NUMA-systemen threads soms aan een bepaalde core vastgezet (affiniteit instellen)?
  46. Wat is het meest geschikt om als eerste te controleren bij het analyseren van de prestaties van een programma dat de GPU gebruikt?
  47. Welk punt hoeft bij de keuze van servers voor een datacenter niet te worden overwogen naast de piekprestaties?
  48. Welk punt moet het best worden gecontroleerd bij het beoordelen van de bewering “met de nieuwe methode 100 keer zo snel”?
  49. Waarom worden de prestaties van een SSD vaak niet alleen weergegeven met de bandbreedte voor sequentieel lezen (MB/s), maar ook met de IOPS (aantal I/O-bewerkingen per seconde) voor willekeurig lezen van 4 KB?
  50. Wanneer de arraygrootte stapsgewijs wordt vergroot en de tijd per element wordt gemeten van een bewerking die de array herhaaldelijk leest, neemt de tijd bij bepaalde groottes trapsgewijs toe. Wat is de juiste verklaring?

Vergelijkingen bij dit onderwerp

Andere onderwerpen in Computersystemen