Prestatiemeting en profiling

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?

  1. AOmdat de CPU-frequentie altijd daalt naarmate de array groter wordt
  2. BOmdat telkens wanneer de array de capaciteit van de L1-, L2- en L3-cache achtereenvolgens overschrijdt, de gegevens uit een langzamer geheugen worden gelezen
  3. COmdat het resultaat van een optelling verandert met de arraygrootte
Antwoord en toelichting tonen

Antwoord: B. Omdat telkens wanneer de array de capaciteit van de L1-, L2- en L3-cache achtereenvolgens overschrijdt, de gegevens uit een langzamer geheugen worden gelezen

Zolang de array klein is, past hij in de L1-cache en kan hij snel worden gelezen; boven de L1-capaciteit wordt uit L2 gelezen, en boven L2 of L3 uit het hoofdgeheugen, waarbij telkens de tijd per element trapsgewijs toeneemt. Met deze meetmethode kunnen de capaciteit en de snelheid van elke cache bij benadering worden onderzocht. Ook wordt duidelijk waarom het van groot belang is voor de prestaties dat de gegevens die een programma herhaaldelijk gebruikt (de working set) in de cache passen.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Prestatiemeting en profiling

  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?