Prestazioni di un calcolatore
In questa pagina 8
Metriche
- Tempo di risposta (di esecuzione): quanto dura un programma. Interessa a chi usa il programma.
- Throughput: quanto lavoro si completa per unità di tempo. Interessa a chi gestisce un server.
- Prestazioni = 1 / tempo di esecuzione. "A è volte più veloce di B" significa .
Tempo di CPU
- : istruzioni eseguite (non quelle scritte nel codice);
- : cicli di clock per istruzione, in media;
- : periodo del clock (a 2 GHz, 0,5 ns).
Esempio: istruzioni, CPI 1,5, clock 2 GHz → s.
Confronto: stesso programma su A (2 GHz, CPI 2,0) e B (3 GHz, CPI 3,6), stessa ISA. ns, ns → A è volte più veloce nonostante il clock più basso.
CPI medio
Se le istruzioni sono divise in classi con frequenza e :
| Classe | Frequenza | CPI |
|---|---|---|
| aritmetiche/logiche | 50% | 1 |
| load | 20% | 5 |
| store | 10% | 3 |
| salti | 20% | 2 |
.
Se una cache migliore porta le load a CPI 2: , speedup .
MIPS e MFLOPS
Con i dati sopra a 2 GHz: MIPS. Limiti: non confronta ISA diverse (un'istruzione RISC fa meno di una CISC), varia da programma a programma, può crescere mentre il tempo peggiora (un compilatore che genera molte istruzioni semplici). MFLOPS: milioni di operazioni in virgola mobile al secondo, per il calcolo scientifico.
L'unica misura affidabile è il tempo di esecuzione di programmi reali.
Legge di Amdahl
Se un miglioramento accelera di un fattore solo una frazione del tempo di esecuzione:
Esempio: le operazioni in virgola mobile sono il 40% del tempo e le si rende 10 volte più veloci: . Anche con : .
Con core e una parte parallelizzabile : con 8 core ; il limite è 10 qualsiasi sia il numero di core (vedi Processori superscalari e multicoreParallelismo a livello di istruzione: processori superscalari, esecuzione fuori ordine, ridenominazione dei registri contro WAR e WAW, speculazione; limiti dell'ILP e della frequenza (consumo); multithreading, multicore e coerenza delle cache; acceleratori.Processori superscalari e multicore →).
Morale: rendere veloce il caso frequente.
Benchmark
Insiemi di programmi reali rappresentativi (es. SPEC CPU per processori). Ogni programma dà un rapporto (tempo di riferimento / tempo misurato); i rapporti si riassumono con la media geometrica , che non dipende dalla macchina scelta come riferimento.
Chi influenza che cosa
| CPI | |||
|---|---|---|---|
| algoritmo | sì | sì | |
| linguaggio e compilatore | sì | sì | |
| ISA | sì | sì | sì |
| organizzazione (pipeline, cache, predittori) | sì | sì | |
| tecnologia | sì |
Pipeline e cache abbassano il CPI effettivo (vedi PipelineIdea della catena di montaggio; pipeline a 5 stadi IF, ID, EX, MEM, WB; tempo di ciclo, tempo per n istruzioni in una pipeline a k stadi e speedup con esempi svolti; registri di pipeline; scrittura e lettura dei registri nello stesso ciclo; limiti (stadi sbilanciati, hazard).Pipeline → e Memoria cacheBlocchi, linee ed etichette; scomposizione dell'indirizzo; associazione diretta, completamente associativa e associativa a insiemi con calcolo dei campi; politiche di rimpiazzo (LRU, FIFO, casuale); politiche di scrittura (write-through, write-back con bit sporco, write-allocate); dimensione del blocco; cache multilivello e separate; come ridurre i miss; quesiti sui campi dell'indirizzo.Memoria cache →); una pipeline più profonda alza la frequenza ma aumenta il costo degli stalli.
Errori tipici
- Confrontare processori solo per frequenza di clock o solo per MIPS.
- Applicare il fattore di miglioramento a tutto il tempo invece che alla sola frazione interessata.
Versione ripasso
Prestazioni ; "A è volte più veloce di B": . Throughput: lavoro per unità di tempo.
- istruzioni, CPI 1,5, 2 GHz: s. A (2 GHz, CPI 2,0) contro B (3 GHz, CPI 3,6): ns, ns, A è volte più veloce.
- Aritmetiche 50% (1), load 20% (5), store 10% (3), salti 20% (2): . Load a CPI 2: , speedup .
- : 909 a 2 GHz con CPI 2,2; non confronta ISA diverse. L'unica misura affidabile è il tempo di esecuzione.
Legge di Amdahl
con : , limite . parallelizzabile su 8 core: , limite 10 (Processori superscalari e multicoreParallelismo a livello di istruzione: processori superscalari, esecuzione fuori ordine, ridenominazione dei registri contro WAR e WAW, speculazione; limiti dell'ILP e della frequenza (consumo); multithreading, multicore e coerenza delle cache; acceleratori.Processori superscalari e multicore →). Rendere veloce il caso frequente.
Benchmark (SPEC CPU): i rapporti tempo di riferimento/tempo misurato si riassumono con la media geometrica. Algoritmo, compilatore, ISA: e CPI; organizzazione (PipelineIdea della catena di montaggio; pipeline a 5 stadi IF, ID, EX, MEM, WB; tempo di ciclo, tempo per n istruzioni in una pipeline a k stadi e speedup con esempi svolti; registri di pipeline; scrittura e lettura dei registri nello stesso ciclo; limiti (stadi sbilanciati, hazard).Pipeline →, Memoria cacheBlocchi, linee ed etichette; scomposizione dell'indirizzo; associazione diretta, completamente associativa e associativa a insiemi con calcolo dei campi; politiche di rimpiazzo (LRU, FIFO, casuale); politiche di scrittura (write-through, write-back con bit sporco, write-allocate); dimensione del blocco; cache multilivello e separate; come ridurre i miss; quesiti sui campi dell'indirizzo.Memoria cache →): CPI e .
Errori tipici: confrontare solo clock o MIPS; applicare il miglioramento a tutto il tempo invece che a .