Introduzione alle architetture parallele



Documenti analoghi
I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

Calcolatori Elettronici A a.a. 2008/2009

La macchina di Von Neumann. Archite(ura di un calcolatore. L unità di elaborazione (CPU) Sequenza di le(ura. Il bus di sistema

Aumentare il parallelismo a livello di istruzione (2)

CALCOLO PARALLELO SUPERARE I LIMITI DI CALCOLO. A cura di Tania Caprini

CPU. Maurizio Palesi

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput

Architettura hardware

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

La memoria centrale (RAM)

Calcolatori Elettronici

Più processori uguale più velocità?

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

Processi e Thread. Scheduling (Schedulazione)

I componenti di un Sistema di elaborazione. CPU (central process unit)

Un sistema operativo è un insieme di programmi che consentono ad un utente di

Approccio stratificato

CPU pipeline 4: le CPU moderne

Informatica di base. Hardware: CPU SCHEDA MADRE. Informatica Hardware di un PC Prof. Corrado Lai

Automazione Industriale (scheduling+mms) scheduling+mms.

Sistema operativo: Gestione della memoria

Low Power Scheduling per Sistemi Real Time

Tecniche per il progetto di sistemi elettronici tolleranti ai guasti

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web: Prof. G. Quarella prof@quarella.

CALCOLATORI ELETTRONICI 31 marzo 2015

FONDAMENTI di INFORMATICA L. Mezzalira

Lezione n.19 Processori RISC e CISC

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi

Corso di Architettura degli Elaboratori

Speedup. Si definisce anche lo Speedup relativo in cui, invece di usare T 1 si usa T p (1).

IL RISPARMIO ENERGETICO E GLI AZIONAMENTI A VELOCITA VARIABILE L utilizzo dell inverter negli impianti frigoriferi.

Aumentare il parallelismo a livello di istruzione (1)

Memoria Virtuale. Anche la memoria principale ha una dimensione limitata. memoria principale (memoria fisica) memoria secondaria (memoria virtuale)

Struttura del calcolatore

Università degli Studi di Salerno

Criteri di Scheduling Algoritmi di Scheduling Multiple-Processor Scheduling Asymmetric/Symmetric multiprocessing Processori Multicore

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

Esame di INFORMATICA

Laboratorio di Informatica

La Gestione delle risorse Renato Agati

CPU pipeline 4: le CPU moderne

CALCOLATORI ELETTRONICI 29 giugno 2011

Architettura di un sistema operativo

DIMENSIONI E PRESTAZIONI

Architettura dei calcolatori I parte Introduzione, CPU

Tipi classici di memoria. Obiettivo. Principi di localita. Gerarchia di memoria. Fornire illimitata memoria veloce. Static RAM. Problemi: Dynamic RAM

e-dva - eni-depth Velocity Analysis

Sistema operativo: Gestione dei processi

Dimensione di uno Spazio vettoriale

Sistemi operativi e reti A.A Lezione 2

Una tecnica per diminuire il consumo di potenza

L unità di elaborazione pipeline L unità Pipelining

Gestione della memoria centrale

Scheduling. Sistemi Operativi e Distribuiti A.A Bellettini - Maggiorini. Concetti di base

Il memory manager. Gestione della memoria centrale

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

Esempio: aggiungere j

Pronto Esecuzione Attesa Terminazione

LabVIEW offre un ambiente di programmazione grafica

Corso di Calcolatori Elettronici I A.A Il processore Lezione 18

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Le prestazioni di un sistema informatico

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

Calcolatori Elettronici. La Pipeline Criticità sui dati Criticità sul controllo Cenni sull unità di controllo

Architettura del calcolatore

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Dispensa di Informatica I.1

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

DMA Accesso Diretto alla Memoria

La memoria - generalità

Gestione del processore e dei processi

CALCOLATORI ELETTRONICI A cura di Luca Orrù

Linux nel calcolo distribuito

Sommario. Analysis & design delle applicazioni parallele. Misura delle prestazioni parallele. Tecniche di partizionamento.

Breve storia del calcolo automatico

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Il Sistema Operativo (1)

Linguaggi di programmazione

Fondamenti di informatica: un po di storia

Pro e contro delle RNA

Valutazione delle Prestazioni

Introduzione ai tipi di dato astratti: applicazione alle liste

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

Organizzazione della memoria principale Il bus

Corso di Informatica

INFORMATICA 1 L. Mezzalira

Hazard sul controllo. Sommario

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

C. P. U. MEMORIA CENTRALE

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

La Memoria Cache. Informatica B. Daniele Loiacono

Informatica - A.A. 2010/11

Sistemi Operativi SCHEDULING DELLA CPU

Il Processore: i registri

Transcript:

Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Introduzione alle architetture parallele Corso di Sistemi Distribuiti Valeria Cardellini Anno accademico 2009/10 Parallelismo Il parallelismo consente di migliorare le prestazioni grazie all esecuzione simultanea di più operazioni Vari tipi di parallelismo Parallelismo funzionale Deriva dalla logica di soluzione di un problema Parallelismo dei dati Deriva dalle strutture dati che consentono l esecuzione simultanea su più elementi nella soluzione di un problema Problemi di calcolo scientifico, elaborazione di immagini che possono anche essere sfruttati contemporaneamente SD - Valeria Cardellini, A.A. 2009/10 1

Parallelismo (2) Il parallelismo funzionale può essere visto a diversi livelli di astrazione, corrispondenti a diverse soluzioni architetturali: 1. Instruction-level parallelism (ILP): a grana fine! A livello di istruzioni 2. Loop-level parallelism: a grana fine A livello di ciclo Sfruttamento del parallelismo esistente tra le iterazioni di un ciclo for (i=1; i<=1000; i=i+1) x[i] = x[i] + y[i] 3. Procedure-level parallelism: a grana intermedia 4. Program-level parallelism: a grana grossa SD - Valeria Cardellini, A.A. 2009/10 2 Parallelismo a livello di istruzione (ILP) Più istruzioni (a livello macchina) dello stesso programma vengono eseguite contemporaneamente nello stesso processore Anche detto parallelismo intrinseco E stato l obiettivo principale dei progettisti di processori a partire dalla metà degli anni 80 e per circa 20 anni Due tecniche fondamentali per l esecuzione parallela di istruzioni Pipelining Replicazione dei componenti interni del calcolatore in modo che sia possibile lanciare l esecuzione di più istruzioni in ogni stadio della pipeline che possono coesistere nella stessa architettura di un calcolatore Processori multiple-issue (ad emissione multipla), in grado di lanciare ed eseguire più istruzioni in parallelo per ciclo di clock (CPI < 1, CPI = Clock cycle Per Instruction) SD - Valeria Cardellini, A.A. 2009/10 3

Pipelining Con il pipelining si ottiene la sovrapposizione temporale dell esecuzione di istruzioni Obiettivo: ridurre il tempo totale necessario al completamento di una sequenza di istruzioni Tempo di CPU richiesto per l esecuzione di un programma Tempo di CPU = Cicli di CPU per il programma x Periodo di clock Tempo di CPU = Numero di istruzioni x Cicli per istruzione x Periodo di clock In modo più sintetico: Tempo di CPU = IC x CPI x T clock dove T clock = 1/f clock Perché funziona il pipelining? Non tutte le istruzioni dipendono dai risultati prodotti dalle istruzioni immediatamente precedenti E quindi possibile eseguire istruzioni completamente o parzialmente in parallelo SD - Valeria Cardellini, A.A. 2009/10 4 ILP: processori multiple issue Due tipi di processori multiple-issue: dinamici e statici Processori multiple-issue dinamici (superscalari) Il numero di istruzioni lanciate per ciclo di clock è variabile Tipicamente, scheduling dinamico delle istruzioni eseguito dall hardware Le istruzioni possono essere eseguite fuori ordine Esempio: Intel Pentium 4 Processori multiple-issue statici Il numero di istruzioni lanciate per ciclo di clock è tipicamente fisso Il compilatore identifica le istruzioni eseguibili in parallelo Istruzioni assemblate in pacchetti, che sono poi decodificati ed eseguiti dal processore Il compilatore gestisce le criticità Esempio: Intel Itanium SD - Valeria Cardellini, A.A. 2009/10 5

ILP e programmatore ILP: il parallelismo è intrinseco (o implicito) Il programmatore concepisce ancora il programma che ha scritto per risolvere un certo problema come una sequenza di istruzioni che verranno eseguite una dopo l altra dal processore Non sa (o non è tenuto a sapere) come queste istruzioni verranno manipolate dal compilatore (multiple-issue statico) o una volta entrate nel processore (multiple-issue dinamico) SD - Valeria Cardellini, A.A. 2009/10 6 Oltre l ILPl I processori multiple-issue supportano il parallelismo a livello di istruzione (ILP) Ma incrementare ulteriormente le prestazioni del singolo processore era diventato sempre più difficile A causa di: power wall, memory wall e ILP wall Il gap tra legge di Moore e prestazioni Legge di Moore: il numero di transistor su un chip raddoppia ogni 18 mesi SD - Valeria Cardellini, A.A. 2009/10 7

Oltre l ILP: l perché? ILP wall Power wall Memory wall SD - Valeria Cardellini, A.A. 2009/10 8 Power wall Negli ultimi 50 anni l aumento di velocità dei transistor ha prodotto un aumento della frequenza di clock Dal 2005 si sono cominciati a vedere i limiti di questo approccio (problemi tecnologici e di consumo di potenza) L equazione del consumo di potenza P è: P =!CV dd2 f + V dd I st + V dd I leak Il consumo di potenza è funzione della potenza statica (che cresce proporzionalmente al numero di transistor) e della potenza dinamica (che è proporzionale al prodotto tra numero di transistor che commutano e frequenza di commutazione) SD - Valeria Cardellini, A.A. 2009/10 9

Oltre l ILP: l come? Quale è l approccio alternativo? Parallelismo esplicito In particolare, parallelismo a livello di thread (Thread Level Parallelism o TLP) Parallelismo esplicito in varie forme: Multithreading Architetture multi-core Molti processori (più semplici) sullo stesso chip Architetture parallele Più processori collegati tra loro in un sistema complesso Le architetture multi-core rappresentano una particolare tipologia di architettura parallela SD - Valeria Cardellini, A.A. 2009/10 10 Limiti del parallelismo esplicito Molti problemi hanno una soluzione che presenta un elevata quantità di parallelismo nativo (embarassingly parallel) Tuttavia (tranne che in casi molto particolari) l incremento di prestazioni (lo speed-up) ottenibile usando un architettura parallela è meno che lineare rispetto al numero di processori disponibili Perché? C è una parte di lavoro che non può essere svolta in parallelo SD - Valeria Cardellini, A.A. 2009/10 11

Limiti del parallelismo esplicito (2) In modo formale: la legge di Amdhal Frazione migliorato : la frazione del tempo di esecuzione che può trarre vantaggio dal miglioramento Speedup migliorato : il miglioramento che si ottiene nel modo di esecuzione migliorato, ossia quanto verrebbe eseguito più velocemente il programma se il modo di esecuzione migliorato potesse essere utilizzato per l intero programma Nel caso di architetture parallele: (1-Frazione migliorato ) è la frazione del programma che non può essere parallelizzata Speedup migliorato =N, dove N è il numero di nodi paralleli SD - Valeria Cardellini, A.A. 2009/10 12 Limiti del parallelismo esplicito (3) In pratica, i problemi principali del parallelismo esplicito sono due: uno software e uno hardware 1. La quantità limitata di parallelismo presente nei programmi, o per lo meno la quantità di parallelismo che si è in grado di esplicitare, e quindi di sfruttare Lo studio di algoritmi paralleli è un campo di ricerca molto attivo, proprio per le sue potenzialità 2. Gli elevati costi delle comunicazioni tra processori e memoria, che possono aumentare enormemente il costo di un cache miss o di una sincronizzazione tra thread che girano su processori diversi SD - Valeria Cardellini, A.A. 2009/10 13

Multithreading Esaminiamo la prima alternativa (o aggiunta) al parallelismo a livello di istruzioni Un processore con multithreading (MT) non è, in senso stretto, una architettura parallela Perché il multithreading è realizzato con un unico processore Tuttavia, porta il programmatore a concepire e sviluppare le sue applicazioni come formate da un insieme di thread che possono girare virtualmente in parallelo SD - Valeria Cardellini, A.A. 2009/10 14 Multithreading: l ideal Il processore esegue contemporaneamente più thread Un thread ha le proprie istruzioni ed i propri dati Un thread può rappresentare un processo che è parte di un programma parallelo oppure un programma indipendente Come nasce l idea del multithreading? Dalla constatazione che anche un datapath progettato per sfruttare grandi quantità di ILP vedrà spesso le proprie unità funzionali inattive a causa di stalli o dipendenze nel codice Con il mutithreading molteplici thread condividono le unità funzionali di un singolo processore sovrapponendosi nell esecuzione Il processore deve mantenere una copia distinta dello stato di ciascun thread (registri, PC, tabella delle pagine) Occorre anche consentire il passaggio da un thread all altro (thread switching) in modo veloce SD - Valeria Cardellini, A.A. 2009/10 15

Approcci per il multithreading Multithreading a grana fine (fine-grained multithreading) Il processore esegue un istruzione per ogni thread Multithreading a grana grossa (coarse-grained multithreading) Il processore cerca di eseguire più istruzioni per thread, passando ad un altro thread in occasioni di stalli lunghi Multithreading simultaneo (simultaneous multithreading, SMT) Raffinamento del multithreading a grana fine Anche noto come hyperthreading nei processori Intel SD - Valeria Cardellini, A.A. 2009/10 16 Multithreading a grana fine L alternanza tra i vari thread avviene ad ogni istruzione, indipendentemente dal fatto che ad es. l istruzione del thread in esecuzione abbia generato un cache miss Lo scheduling tra le istruzioni dei vari thread avviene secondo una politica round-robin, evitando quelli in situazione di stallo Se vi è un numero sufficiente di thread, è possibile che ve ne sia sempre almeno uno non in stallo ed il processore può essere mantenuto sempre attivo Svantaggio principale: rallenta l esecuzione di ciascun singolo thread Altro svantaggio: ad ogni ciclo di clock si paga l overhead del thread switching (overhead molto limitato, ma comunque non nullo) Usato in SUN Niagara SD - Valeria Cardellini, A.A. 2009/10 17

Multithreading a grana grossa L alternanza tra thread avviene solo quando il thread in esecuzione genera uno stallo (di costo elevato) A questo punto viene effettuato lo switch ad un altro thread Quando anche questo thread genererà uno stallo, verrà schedulato un terzo thread (o eventualmente si tornerà al primo) e così via Per ammortizzare i costi di inizializzazione della pipeline, conviene solo per stalli di costo elevato (ad es. un miss in una cache L2) SD - Valeria Cardellini, A.A. 2009/10 18 Multithreading simultaneo (SMT) Il parallelismo a livello di istruzioni e quello a livello di thread vengono sfruttati contemporaneamente, con l emissione di istruzioni di thread diversi durante un singolo ciclo di clock SMT = ILP + TLP Idea di base: i processori multiple-issue hanno più unità funzionali di quante siano mediamente sfruttabili dal singolo thread in esecuzione; sfruttando il register renaming e lo scheduling dinamico, istruzioni appartenenti a thread diversi possono essere eseguite insieme SD - Valeria Cardellini, A.A. 2009/10 19

Confronto tra approcci per multithreading Superscalar Fine-Grained Coarse-Grained Multiprocessing Simultaneous Multithreading Time (processor cycle) Thread 1 Thread 2 Thread 3 Thread 4 Thread 5 Idle slot SD - Valeria Cardellini, A.A. 2009/10 20 Confronto tra approcci per multithreading (2) Nei processori senza MT, il multiple issue può venire vanificato dalla mancanza di sufficiente parallelismo tra le istruzioni di ogni thread, e/o da un lungo stallo che lascia il processore idle Nel coarse-grained MT, gli stalli lunghi sono mascherati dal passaggio ad un altro thread, ma la mancanza di parallelismo tra le istruzioni di ciascun thread limita il grado di utilizzo delle risorse del processore (ad es. non possono essere usati tutti gli slot di issue disponibili) Anche nel fine-grained MT, la mancanza di ILP in ciascun thread limita l utilizzo delle risorse del processore Nell SMT le istruzioni appartenenti a thread diversi sono (quasi) certamente indipendenti: se possiamo lanciarle assieme aumentiamo il grado di utilizzo delle risorse del processore SD - Valeria Cardellini, A.A. 2009/10 21

Multithreading nei processori Intel: nel passaggio ai processori dual core (microarchitettura Core) Intel aveva abbandonato l hyperthreading; tuttavia, lo ha reintrodotto a partire dalla fine del 2008 (microarchitettura Nehalem) Altri processori commerciali che implementano il multithreading sono: IBM Power 5 e Power 6: implementano l SMT con due thread contemporaneamente attivi SUN Niagara: supporta il fine-grained multithreading SD - Valeria Cardellini, A.A. 2009/10 22 Processor Intel Pentium 4 Extreme AMD Athlon 64 FX-57 IBM Power5 (1 CPU only) Intel Itanium 2 Prestazioni ed efficienza in processori singoli multiple-issue (tratto da HP-CA4ed) Micro architecture Speculative dynamically scheduled; deeply pipelined; SMT Speculative dynamically scheduled Speculative dynamically scheduled; SMT; 2 CPU cores/chip Statically scheduled VLIW-style Fetch / Issue / Execute 3/3/4 3/3/4 8/4/8 6/5/11 Functional Units 7 int. 1 FP 6 int. 3 FP 6 int. 2 FP 9 int. 2 FP Clock Rate (GHz) 592 M, 423 mm 2 SD - Valeria Cardellini, A.A. 2009/10 23 3.8 2.8 1.9 1.6 Transistors, Die size 125 M, 122 mm 2 114 M, 115 mm 2 200 M, 300 mm 2 (est.) Power 115 W 104 W 80 W (est.) 130 W

Prestazioni sui benchmark SPECint2000 Itanium 2 Pentium 4 A MD A thlon 64 Pow er 5 3500 3000 2500 SPEC Ratio 2000 1500 1000 500 0 gzip vpr gcc mcf crafty parser eon perlbmk gap vortex bzip2 twolf SD - Valeria Cardellini, A.A. 2009/10 24 Prestazioni sui benchmark SPECfp2000 14000 Itanium 2 Pentium 4 AMD Athlon 64 Power 5 12000 10000 SPEC Ratio 8000 6000 4000 2000 0 w upw ise sw im mgrid applu mesa galgel art equake facerec ammp lucas fma3d sixtrack apsi SD - Valeria Cardellini, A.A. 2009/10 25

Misure di efficienza 35 30 25 Itanium 2 Pentium 4 AMD Athlon 64 POWER 5 Rank I t a n i u m 2 P e n t I u m 4 A t h l o n P o w e r 5 20 Int/Trans 4 2 1 3 15 FP/Trans 4 2 1 3 Int/area 4 2 1 3 10 FP/area 4 2 1 3 5 Int/Watt 4 3 1 2 FP/Watt 2 4 3 1 0 SPECInt / M Transistors SPECFP / M Transistors SPECInt / mm^2 SPECFP / mm^2 SPECInt / Watt SPECFP / Watt SD - Valeria Cardellini, A.A. 2009/10 26 Dal confronto emerge che Nessuno dei processori multipli-issue esaminati (lo stato dell arte nel 2005) fornisce un vantaggio decisivo Lo sfruttamento dell ILP non può scalare facilmente ed efficientemente molto più in là Si è raggiunto il punto in cui, tentando di sfruttare maggiori quantità di ILP, si ottengono svantaggi superiori ai vantaggi Anche il multithreading non basta Avvento dei processori multi-core (più core su un unico chip) con eventuale multithreading per core SD - Valeria Cardellini, A.A. 2009/10 27