Macchina di von Neumann. Architetture parallele. Cenni storici



Documenti analoghi
Macchina di von Neumann. Architetture parallele

Macchina di von Neumann. Architetture parallele. Cenni storici

Parte VIII. Architetture Parallele

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

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

Struttura del calcolatore

Macchina di von Neumann. Architetture parallele

Architettura del calcolatore

C. P. U. MEMORIA CENTRALE

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

Calcolatori Elettronici

CPU. Maurizio Palesi

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

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

La memoria centrale (RAM)

La Gestione delle risorse Renato Agati

Parte IV Architettura della CPU Central Processing Unit

Architetture parallele

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

Sistemi avanzati di gestione dei Sistemi Informativi

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

DMA Accesso Diretto alla Memoria

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

Approccio stratificato

SISTEMI OPERATIVI DISTRIBUITI

Indice generale. 1 Il calcolatore: astrazioni. 2 Le istruzioni: il linguaggio. e tecnologia 1. dei calcolatori 57

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

GPGPU GPGPU. anni piu' recenti e' naturamente aumentata la versatilita' ed usabilita' delle GPU

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Esame di INFORMATICA

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

Calcolo numerico e programmazione Architettura dei calcolatori

Architettura di un sistema di calcolo

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

Corso di Sistemi di Elaborazione delle informazioni

Architettura dei calcolatori I parte Introduzione, CPU

1.4a: Hardware (Processore)

Architettura hardware

Calcolatori Elettronici A a.a. 2008/2009

Linux nel calcolo distribuito

Lezione 3: Architettura del calcolatore

ARCHITETTURA DELL ELABORATORE

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

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

L architettura di riferimento

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

Laboratorio di Informatica

Calcolatori Elettronici

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

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

CALCOLATORI ELETTRONICI Lezione n. Arch_Par 3

STRUTTURE DEI SISTEMI DI CALCOLO

Architetture Applicative

SISTEMI E RETI. Crittografia. Sistemi distribuiti e configurazione architetturale delle applicazioni WEB.

Lezione n.19 Processori RISC e CISC

La componente tecnologica dei. sistemi informativi. Architettura hw. Componenti di una architettura hw

Come funziona un sistema di elaborazione

Lezione 10. Scheduling nei sistemi multiprocessori. Esempio: P=2 processori. Scheduling dei processi

Classificazione delle Architetture Parallele

Informatica - A.A. 2010/11

Vari tipi di computer

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

Architettura di un computer

Tecniche per il progetto di sistemi elettronici tolleranti ai guasti

Tecniche di parallelismo, processori RISC

Aumentare il parallelismo a livello di istruzione (2)

File System Distribuiti

Introduzione. File System Distribuiti. Nominazione e Trasparenza. Struttura dei DFS. Strutture di Nominazione

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

La macchina programmata Instruction Set Architecture (1)

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Fondamenti di informatica: un po di storia

Redundant Array of Inexpensive (Independent) Disks. Disco magnetico

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

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

Corso di Informatica

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Una architettura peer-topeer per la visualizzazione 3D distribuita

Architettura di un calcolatore

Creare una Rete Locale Lezione n. 1

Corso di Sistemi di Elaborazione delle informazioni

Sistemi Operativi. 5 Gestione della memoria

GLI APPARATI PER L INTERCONNESSIONE DI RETI LOCALI 1. Il Repeater 2. L Hub 2. Il Bridge 4. Lo Switch 4. Router 6

CALCOLATORI ELETTRONICI A cura di Luca Orrù

Il computer: primi elementi

Il Software. Il software del PC. Il BIOS

Hardware di un Computer

Dispensa di Informatica I.1

Il Sistema Operativo. Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo

Il sistema operativo TinyOS

Struttura del Corso. Corso Integrato di Informatica e Sistemi di Elaborazione delle Informazioni. Sistemi di Elaborazione delle Informazioni.

Corso di Sistemi di Elaborazione A.A. 2008/2009

Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2

Il Sistema Operativo

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine.

Transcript:

Architetture parallele Macchina di von Neumann Modello di calcolo: macchina di von Neumann. Control unit Arithmetic logic unit Input Output Limite alle prestazione ottenibili: un unica operazione in esecuzione una sola parte attiva Ricerca di nuove architetture con più operazioni in esecuzione allo stesso istante. Accumulator (Architettura degli Elaboratori) Architetture parallele 1 / 71 (Architettura degli Elaboratori) Architetture parallele 2 / 71 Cenni storici Molte proposte per architetture parallele: Reti neuronali, Date flow machine, Calcolatori vettoriali, Connection machine, Illiac IV. Scarso successo commerciale. I calcolatori vettoriali usate per supercomputer per il calcolo scientifico. Approcci rivoluzionari, difficili da usare, richiedono nuovi stili di programmazione. (Architettura degli Elaboratori) Architetture parallele 3 / 71 Cenni storici Macchine parallele a larga diffusione: anni 90. ipeline, superscalari Approcci conservativi, mantengo il codice. processore multi-core, sistemi multiprocessore, cluster di calcolatori. Ultime evoluzioni, conseguenze della: legge di Moore, vincoli sui consumi energetici. er sfruttare a piene il parallelismo devo usare algoritmi concorrenti distribuiti. (Architettura degli Elaboratori) Architetture parallele 4 / 71

Illustreremo problematiche e aspetti generali del parallelismo; classificazione dei calcolatori paralleli; esempi di calcolatori paralleli, idee architetturali attualmente in uso. Migliorare le prestazioni: Motivazioni per il parallelismo problemi che richiedo molta potenza computazionale: algoritmi di simulazione; il software tende a sfruttare tutte le risorse disponibili. Aumento delle prestazioni mediante: nuove tecnologie (porte logiche più veloci). nuove architetture (computazione più efficiente, maggior parallelismo) (Architettura degli Elaboratori) Architetture parallele 5 / 71 (Architettura degli Elaboratori) Architetture parallele 6 / 71 Altri vantaggi: Motivazioni per il parallelismo tolleranza ai guasti: più unita di calcolo, un guasto non necessariamente blocca il calcolatore, architettura scalabile: posso aumentare le prestazioni aggiungendo nuove unità di calcolo. (Architettura degli Elaboratori) Architetture parallele 7 / 71 arallelismo su un singolo chip ipeline: divisione della (micro-)istruzione in stadi. S1 S2 S3 S4 S5 Instruction fetch unit Instruction decode unit S1: S2: S3: S4: S5: Operand fetch unit (a) 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 1 2 3 4 5 6 1 2 3 4 5 Instruction execution unit 1 2 3 4 5 6 7 8 9 Time (Architettura degli Elaboratori) Architetture (b) parallele 8 / 71 Write back unit

rocessori superscalari Integer pipeline Execute Cache N 1 N 2 Fetch Decode Group N 3 Write Register X 1 X 2 X 3 Floating-point/graphics pipeline iù istruzioni iniziate contemporaneamente restazioni: aumento di un fattore circa dieci arallelismo a livello di istruzione iù istruzioni, di uno stesso processo, eseguite contemporaneamente. Vantaggi: si utilizza codice sequenziale, facile da utilizzare, non è necessario riscrivere il codice. Svantaggi: difficile ottenere un elevato grado di parallelismo. (Architettura degli Elaboratori) Architetture parallele 9 / 71 (Architettura degli Elaboratori) Architetture parallele 10 / 71 Altre tecniche il parallelismo: arallelismo su di un singolo chip rocessori VLIW Very Long Instruction Words On-Chip Multi-threading Single-Chip Multiprocessor Multiprocessori omogenei Multiprocessori eterogeneo (Architettura degli Elaboratori) Architetture parallele 11 / 71 VLIW Very Long Instruction Words Nuovi linguaggi macchina adatti alla computazione parallela. Sfruttano al meglio le tecnologie esistenti. I nuovi linguaggi macchina usano: VLIW Very Long Instruction Words ossia istruzioni molto lunghe, ciascuna composta da una sequenza di istruzioni base. Istruzione base da eseguire in parallelo contemporaneamente. Senza controllare che siano indipendenti tra loro. Sposto il lavoro dal processore al compilatore. (Architettura degli Elaboratori) Architetture parallele 12 / 71

TriMedia rocessore sviluppato dalla hilips, per dispositivi embedded di audio-video (DVD player - recorder, camcorder,.... Una singola istruzione è composta da 5-8 sotto-istruzioni: operazioni aritmetiche, load-store, multimediali (vettoriali). Itanium IA-64 Intel, candidato a sostituire l IA-32 (entium, Core). INSTRUCTION 1 INSTRUCTION 2 INSTRUCTION 3 TEMLATE INSTRUCTION 1 INSTRUCTION 2 INSTRUCTION 3 TEMLATE INSTRUCTION 1 INSTRUCTION 2 INSTRUCTION 3 TEMLATE R1 R2 R3 Instructions can be chained together REDICATE REGISTER (Architettura degli Elaboratori) Architetture parallele 13 / 71 iù istruzioni possono essere collegate assieme ed eseguiti contemporaneamente, senza controllare l indipendenza. (Architettura degli Elaboratori) Architetture parallele 14 / 71 Itanium IA-64 Istruzioni condizionate, per evitare le istruzioni di salto. Centinaia di registri, evito: accessi in memoria, dipendenza tra istruzioni. Caricamenti speculativi, anticipo gli accessi in memoria. a meno di page-fault. oco successo commerciale, il mercato ha preferito x86-64 (o AMD 64) scelta conservativa. (Architettura degli Elaboratori) Architetture parallele 15 / 71 Multi-threading ermette di sfruttare meglio le capacità di calcolo dei processori superscalari (con più pipeline). Il processore esegue più thread (processi (con memoria condivisa)) contemporaneamente. Utile nel caso un programma rallenti per: dipendenze tra istruzioni, istruzioni che bloccano, per alcuni cicli di clock l esecuzione (accessi alla memoria principale, cache III livello) (Architettura degli Elaboratori) Architetture parallele 16 / 71

Multi-threading uò essere utilizzato in processori con singola pipeline. iù utile in processore superscalari. In determinati istanti il processore commuta da un thread ad un altro. Due tecniche possibili; m. grana fine: si commuta su ogni, numero elevato di commutazione di contesti, si anticipano i possibili blocchi. m. grana grossa: si cerca di eseguire più istruzioni per thread, riduco le commutazioni. (Architettura degli Elaboratori) Architetture parallele 17 / 71 Multi-threading rocessore con una singola pipeline: rocessore superscalare: (Architettura degli Elaboratori) Architetture parallele 18 / 71 Ripartizione risorse Come le risorse del processore vengono ripartite tra i vari thread. Esempi: ogni thread disponi di un suo insieme di registri: risorse condivise: memoria cache risorse partizionate: le pipeline di un processore super-scalare In generale: Ripartizione risorse condivisione ripartita: ogni thread un insieme privato di risorse, condivisione totale, condivisione a soglia; un limite alle risorse acquisibili da un thread. Multi-threading usato su molti processori: Core i7: hyper-threading, 2 thread/core, UltraSparcT3: 16 core, 8 thread/core (Architettura degli Elaboratori) Architetture parallele 19 / 71 (Architettura degli Elaboratori) Architetture parallele 20 / 71

Multiprocessori omogenei su un singolo chip Evoluzione del multi-threading, ogni thread un core. Totale separazione delle risorse tra i thread. Solo a memoria cache resta comune. Intel Core i7 La tecnologia attuale permette di inserire più processori su di un chip. (Architettura degli Elaboratori) Architetture parallele 21 / 71 Maggior numero di core: - UltraSparc - Celle (Sony, Toshiba, IBM) (Architettura degli Elaboratori) Architetture parallele 22 / 71 Co-processori arallelismo ottenuto delegando alcuni compiti a processori ausiliari. DMA (Direct Access): controllore DMA complesso, co-processore, si fa carico della gestione I/O. Scheda video: generazione di immagini. Co-processori multimediali: la gestione dei dati audio video gravosa: codifica - decodifica (MEG, M3), elaborazione del segnale. Scheda di rete: controllo degli errori, instradamento dei messaggi. Cripto-processori. (Architettura degli Elaboratori) Architetture parallele 23 / 71 Multipr. eterogenei su singolo chip In un chip: core principale di controllo co-processori specializzati su particolari applicazioni bus di interconnessione, diversi standard alternativi: CoreConnect IBM, AMBA (Advance Microcontroller Bus Architecture) CU ARM, VCI (Virtual Component Interconncect) Chip progettato combinando i progetti delle singole componenti (core). (Architettura degli Elaboratori) Architetture parallele 24 / 71 Dispositivi embedded: SoC (System on Chip),

arallelismo su più chip Multiprocessori iù processori su più circuiti integrati. Maggiori aumenti di prestazioni. Necessità di nuovo codice (o di un adatto SO), nuove problematiche. Considereremo due principali approcci: multiprocessori e multicomputer. Sistemi a memoria condivisa. Shared memory CU (a) (b) (Architettura degli Elaboratori) Architetture parallele 25 / 71 (Architettura degli Elaboratori) Architetture parallele 26 / 71 Multiprocessori Le CU dividono lo stesso spazio di memoria. Comunicazione tra CU attraverso l accesso alla memoria condivisa LOAD, STORE. Non è necessario ripartire i dati tra le CU Accesso alla memoria limita le unità di computazione (il grado di parallelismo). Esempi: C con multi-processore, server. Sistemi a memoria distribuita: M M M M M M M M Message- passing interconnection network M M M M rivate memory CU M M M M Multicomputer Message- passing interconnection network CU (a) (b) (Architettura degli Elaboratori) Architetture parallele 27 / 71 (Architettura degli Elaboratori) Architetture parallele 28 / 71

Multicomputer Ogni CU ha un proprio spazio di memoria. Comunicazione attraverso scambio di messaggi: SEND, RECEIVE. iù semplice integrare numerose CU, numero unità limitato dalla capacità della rete di interconnessione. iù difficili da programmare. Machine 1 Machine 2 Application Language run-time Operating Hardware Application Language run-time Operating Hardware Simulazione memoria condivisa Machine 1 Machine 2 Application Language run-time Operating Hardware Application Language run-time Operating Hardware Machine 1 Machine 2 Application Language run-time Operating Hardware Application Language run-time Operating Hardware Shared memory Shared memory Shared memory (Architettura degli Elaboratori) Architetture parallele 29 / 71 (a) (b) (c) (Architettura degli Elaboratori) Architetture parallele 30 / 71 Simulazione memoria condivisa 1 Memoria condivisa hardware. 2 Memoria condivisa tramite memoria virtuale, paginazione. Una pagina può trovarsi: nel memoria della CU, in memoria disco, nella memoria locale di un altra CU. DSM (Distributed Shared ). 3 Memoria condivisa tramite librerie. Linda: programmi con tuple condivise. Orca: programmi con oggetti condivisi. (Architettura degli Elaboratori) Architetture parallele 31 / 71 Catalogazione del parallelismo Granularità: complessità delle computazioni eseguite in parallelo (e dei circuiti che le eseguono) Fine: semplici istruzioni, Instruction Level arallelism (IL). Es. processori con pipeline. Grossa (coarse): procedure, rocess Level arallelism (L). Es. processori multi-threading, sistemi multiprocessori. (Architettura degli Elaboratori) Architetture parallele 32 / 71

Livello di accoppiamento Forte: unità fortemente connesse, notevole scambio di dati. Es. processori superscalari, multiprocessori. Debole: unità più indipendenti. Es. multicomputer. Scalabilità Una stessa idea architetturale può essere implementata con un numero variabile di unità di calcolo. Un architettura è scalabile se funziona correttamente con molte unita di calcolo. CU Bus (a) (b) (c) (d) (Architettura degli Elaboratori) Architetture parallele 33 / 71 (Architettura degli Elaboratori) Architetture parallele 34 / 71 roblemi: Miglioramento delle prestazioni Le unità di calcolo devono sincronizzarsi tra di loro, overhead di computazione (lavoro extra). Memoria, o altre risorse condivise, creano conflitti tra le unità di calcolo. Conseguenze: difficilmente n unità svolgono un lavoro n volte più velocemente, a volte un aumento delle unità di calcolo porta a un peggioramento delle prestazioni. (Architettura degli Elaboratori) Architetture parallele 35 / 71 restazione Scalabilità dipende sia dall architettura che dai problemi considerati: Speedup 60 50 40 30 20 10 Linear speedup N-body problem Skyline matrix inversion 0 (Architettura 0 degli 10 Elaboratori) 20 30 40 Architetture 50 parallele 60 36 / 71 Number of CUs Awari

Componenti di un calcolatore parallelo Unità di calcolo. Si usano processori standard. Unità di memoria. Spesso partizionata per poter essere condivisa tra più processori. Rete di interconnessione. Nei multiprocessori collegano processori e moduli di memoria. Nei multicomputer collegano le unità di calcolo. Memoria Composta da diverse unità operanti in parallelo. Struttura complessa, dati replicati: ogni core possiede una cache locale, cache di alto livello comune a più core, memoria principale comune a più processori, eventualmente divisa su più unità. Tempi di accesso ai dati dipendo dalla loro posizione rispetto al processore. er preservare l efficienza, sono ammessi accessi alla memoria fuori ordine: i dati disponibili vengono subito letti o scritti. (Architettura degli Elaboratori) Architetture parallele 37 / 71 (Architettura degli Elaboratori) Architetture parallele 38 / 71 Consistenza della memoria Una memoria con comportamento ideale (esecuzione in ordine, tutti i processore hanno la stessa visione della memoria) è troppo lenta. Ma l ordine di accesso ai dati in memoria non può essere arbitrario, vanno stabilite regole minime per rendere prevedibile il comportamento del codice. Sequenziale: tutte le CU vedono lo stesso ordine. Di processore: preserva: le scritture di ogni CU, la scrittura di ogni indirizzo. Debole: prevede richieste di sincronizzazione, (Architettura Dopo degli Elaboratori) il rilascio: sincronizzazione Architetture parallele locale. 39 / 71 Reti di interconnessione Equivalente sofisticato dei bus. Componente fondamentale: a volte la componente più costosa del calcolatore. Composte da: Link (connessioni - cavi - bus) paralleli o seriali Switch (instradatori - commutatori) Interfacce (rocessori - rete - memorie) (Architettura degli Elaboratori) Architetture parallele 40 / 71

Switch Metodi di comunicazione: Circuit switching, Store and forward: messaggio diviso in pacchetti. input, output, common buffering Routing: determinazione del percorso. (a) (c) (b) (d) Topologie di rete CU 1 Input port Output port A B End of packet (e) (f) C D Four-port switch Middle of packet CU 2 (g) (h) Front of packet (Architettura degli Elaboratori) Architetture parallele 41 / 71 (Architettura degli Elaboratori) Architetture parallele 42 / 71 Topologie di rete Modo di strutturare le unità di calcolo: Obiettivi massimizzare la ampiezza di banda, evitare colli di bottiglia, minimizzare le distanze (in numero di archi): diametro. Configurazione: stella, completamente interconnessa, albero, griglia, doppio toroide, ipercubo. geometria fissa o variabile Tassonomia dei computer paralleli Classificazione di Flynn (1972) SISD Single Instruction Single Data (macchina di von Neumann) SIMD Single Instruction Multiple Date (Computer Vettoriali) MIMD Multiple Instruction Multiple Data (Multiprocessori e multicomputer) MISD Multiple Instruction Multiple Data (nessun esempio) (Architettura degli Elaboratori) Architetture parallele 43 / 71 (Architettura degli Elaboratori) Architetture parallele 44 / 71

Una classificazione più fine arallel computer architectures SIMD: Array processor Control unit Broadcasts instructions SISD SIMD MISD MIMD (Von Neumann)? Vector processor Array processor Multi- processors Multi- computers UMA COMA NUMA M COW rocessor 8 8 rocessor/memory grid Bus Switched CC-NUMA NC-NUMA Grid Shared memory Hyper- cube Message passing iù processori controllati da una unità: ILLIAC IV (Architettura degli Elaboratori) Architetture parallele 45 / 71 (Architettura degli Elaboratori) Architetture parallele 46 / 71 GU (General urpose Unit) Le schede grafiche sono un implementazione moderna degli array processor. La computazione nelle GU (Graphical process uniti) avviene secondo lo schema array processor: la stessa operazione eseguita da semplici core su dati diversi. struttura della memoria complessa: ogni core ha una memoria privata, gruppi di core condividono una memoria locale, esiste una memoria comune a tutti i core. (Architettura degli Elaboratori) Architetture parallele 47 / 71 GGU (General urpose GU) Con i GGU si utilizzano le GU per calcoli generici (non grafici), solo alcuni tipi di calcolo adatti a questo tipo di computazione, si sfruttano l elevato numero di core (Nvidia Fermi - 512 Core). nuovi linguaggi di programmazione su GGU CUDA (Nvidia) OpenCL (Generico, usabile su più schede grafiche). (Architettura degli Elaboratori) Architetture parallele 48 / 71

Nvidia Fermi SIMD: Vector processor Input vectors Vector ALU Gerarchia di memoria: locale al singolo core, condivisa tra gruppi di core, memoria comune. ALU e Registri operano su vettori: CRAY. (Architettura degli Elaboratori) Architetture parallele 49 / 71 (Architettura degli Elaboratori) Architetture parallele 50 / 71 SIMD instruction I processori attuali implementano istruzioni vettoriali. Estensioni ai linguaggi macchina. ISA x86: MMX (MultiMedia extension) SSE (Streaming SIMD Extension),..., SSE4 AVX (Advance Vector extension) Utilizzati registri molto lunghi, centinaia di bit, contenenti vettori di dati (byte, half-word, word) su cui operare con istruzioni vettoriali. Si distingue tra: SIMD instruction istruzioni multimediali: lunghezza fissa. istruzioni vettoriali: insiemi di dati di lunghezza variabile, parametriche Vantaggi: si sfrutta la legge di Moore (i tanti transistor a disposizione), istruzioni vettoriali permettono un codice più compatto. (Architettura degli Elaboratori) Architetture parallele 51 / 71 (Architettura degli Elaboratori) Architetture parallele 52 / 71

Calcolatori MIMD Multiprocessori UMA multiprocessor UMA Uniform Access NUMA Non Uniform Access COMA Cache Only Access multicomputer M Massive arallel rocessor COW Cluster Of Workstation (NOW Network Of W.) Tutti i processori hanno stessi tempi di accesso alla memoria, SM (Symmetric Multi rocessor): quando i processori hanno la stessa visione della memorie e dei dispositivi I/0: (Architettura degli Elaboratori) Architetture parallele 53 / 71 (Architettura degli Elaboratori) Architetture parallele 54 / 71 Shared memory SM con singolo bus CU CU M CU CU M CU CU M Bus Cache rivate memory (a) (b) (c) Shared memory L implementazione più semplice di un sistema multiprocessore. Bus limita il numero di CU utilizzabili (16). Cache di grosse dimensioni per limitare l accesso al bus. Necessità di mantenere la coerenza della cache. (Architettura degli Elaboratori) Architetture parallele 55 / 71 Snooping cache Le cache spia il traffico sul bus per garantire la coerenza. Diverse implementazioni: Write through Read Miss Lettura dalla memoria. Read Hit Dati locali. Write Miss Aggiorna memoria - Invalida altre linee. Write Hit Aggiorna memoria e cache Invalida altre linee. Molti accessi al bus: semplice ma poco efficiente. (Architettura degli Elaboratori) Architetture parallele 56 / 71

Snooping cache: protocollo MESI rotocollo write back. Utilizzato nei processori Core. Ogni linea di cache viene marcato in uno tra 4 modi: (a) (b) CU 1 CU 2 CU 3 A Exclusive Cache CU 1 CU 2 CU 3 A Bus MESI, esempio CU 1 reads block A CU 2 reads block A Exclusive (sola copia in cache); Shared (linea presente in altre cache); Modified (linee cache diversa da quella in memoria); Invalid (linea non valida). (c) (d) Shared Shared Bus CU 1 CU 2 CU 3 A Modified Bus CU 1 CU 2 CU 3 A A Shared Shared Bus CU 2 writes block A CU 3 reads block A (Architettura degli Elaboratori) Architetture parallele 57 / 71 CU 1 CU 2 CU 3 (e) (Architettura degli Elaboratori) CU 2 writes block A Architetture parallele 58 / 71 A Modified Bus UMA con crossbar switch rocessori e memorie connesse con un crossbar switch, (Sun Fire E25K). Rete non bloccante. Elevato numero di switch. (O(n 2 )) CUs 000 001 010 011 100 101 110 111 000 001 010 Memories 011 100 101 110 111 (b) Crosspoint switch is open Crosspoint switch is closed (c) Closed crosspoint Open switch crosspoint (Architettura degli Elaboratori) switch Architetture parallele 59 / 71 (f) CU 1 CU 2 CU 3 A Modified Bus UMA con reti a commutazione CU 1 writes block A Rete Omega Rete bloccante. Limitato numero di switch. (O(n log n)) CUs 000 001 010 011 100 101 110 b a 1A 1B 1C b 3 Stages 2A 2B 2C 111 1D 2D 3D a a 111 (Architettura degli Elaboratori) Architetture parallele 60 / 71 b 3A 3B 3C a b Memories 000 001 010 011 100 101 110

Multiprocessori NUMA Multiprocessori NUMA Not Uniform Access CU CU MMU Local bus Local bus CU Local bus CU Local bus Memoria locale e remota Un unico spazio di indirizzamento maggiore scalabilità: superano il limite delle 100 CU necessità di ridistribuire i dati System bus Hardware DSM Distributed Shared. (Architettura degli Elaboratori) Architetture parallele 61 / 71 (Architettura degli Elaboratori) Architetture parallele 62 / 71 Si dividono in: CC-NUMA presenza di caching limita gli accessi remoti directory (invece di snoooping cache) per garantire la coerenza NC-NUMA assenza di caching aumentano gli accessi paginazione sofisticata page scanner, per ridistribuire i dati COMA Cache Only Access la memoria locale è vista come una grande memoria cache problemi recupero dati. (Architettura degli Elaboratori) Architetture parallele 63 / 71 Multicomputer CU con spazio privato di memoria, non direttamente accessibile Vantaggi: maggiore scalabilità, efficienti nell eseguire in parallelo processi indipendenti (o con poca dipendenza). Es. server web. Caratteristiche: sistemi fault-tollerance, i singoli computer possono essere SM con bus singolo. (Architettura degli Elaboratori) Architetture parallele 64 / 71

CU Communication processor Local interconnect Disk and I/O Node Multicomputer Local interconnect High-performance interconnection network Si dividono in due categorie. Disk and I/O Massive arallel rocessor M Gli attuali supercomputer Un elevato numero di processori standard Rete di interconnessione sofisticata Librerie software parallelo Fault tollerance: necessario per l elevato numero di componenti Esempi: BlueGene: : 400K CU, Red Storm 10K CU Opeteron. (Architettura degli Elaboratori) Architetture parallele 65 / 71 (Architettura degli Elaboratori) Architetture parallele 66 / 71 BlueGene rogetto IBM. Record di prestazioni teoriche ed effettive. Campi d applicazione: scacchi, simulazione: protein-unfolding, sistemi biologici (cervello, cuore), cosmologia. Cluster of workstation COW Rete di interconnessione standard: si sfruttano i progressi nelle reti. Dispositivi economici, facilmente assemblabili, possono raggiungere prestazioni paragonabile ai M. Centralizzati o decentralizzati. (Architettura degli Elaboratori) Architetture parallele 67 / 71 (Architettura degli Elaboratori) Architetture parallele 68 / 71

Esempio: Cluster Google Esempio: Cluster Google Un numero limitato di datacenter (12) di grosse dimensioni. Il progetto poco pubblicizzato. rincipi costruttivi: utilizzare componenti economici (desk-top, rete Ethernet) di largo uso, con il miglior rapporto: prestazioni/(prezzo + consumi); (consumi 100MW) l affidabilità ottenuta attraverso ridondanza, la rottura di un componente non compromette il sistema. (Architettura degli Elaboratori) Architetture parallele 69 / 71 (Architettura degli Elaboratori) Architetture parallele 70 / 71 Grid computing Livello successivo di computazione parallela: Computazione distribuita su calcolatori connessi via web. meccanismi di protezione, gestione della risorse di calcolo, distribuzione del carico, sistemi di calcolo non omogenei, definizione di uno standard comune. (Architettura degli Elaboratori) Architetture parallele 71 / 71