Classificazione delle Architetture Parallele

Documenti analoghi
SISD - Single Instruction Single Data. MISD- Multiple Instructions Single Data. SIMD Single Instruction Multiple Data. Architetture di processori

Parte VIII. Architetture Parallele

Sistemi a processori multipli

ARCHITETTURE MULTIPROCESSORE E CALCOLO PARALLELO (Motivazioni e Classificazioni)

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

Architetture parallele

Macchina di von Neumann. Architetture parallele. Cenni storici

CLASSIFICAZIONE DEI SISTEMI OPERATIVI (in ordine cronologico)

IL MULTIPROCESSING. Tendenza attuale: distribuire il calcolo tra più processori.

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

Modelli di programmazione parallela

Architetture. Paride Dagna. SuperComputing Applications and Innovation Department 18/02/2013

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

Evoluzione dei Sistemi. Prof. Giuseppe Pirlo Dipartimento di Informatica Università degli Studi di Bari

Valutazione delle prestazioni

Introduzione. Sistemi Distribuiti. Introduzione. Introduzione. Definizione di sistema distribuito. Introduzione

Sistemi Distribuiti. Introduzione Definizione Vantaggi e svantaggi Architetture hardware e software Problemi di progetto. Sistemi Operativi mod.

Università di Roma La Sapienza Dipartimento di Matematica gennaio Calcolo parallelo. Claudia Truini

Corso di Informatica Applicata. Lezione 3. Università degli studi di Cassino

Modelli di interazione tra processi

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

Lezione 2 Chiamate di procedura e risposta alle interruzioni

Il Modello a scambio di messaggi

Architettura dei calcolatori e Software di sistema

Esame di INFORMATICA Lezione 4

LA MEMORIA NEL CALCOLATORE

PARTE II PROGRAMMAZIONE PARALLELA

Sistemi Distribuiti Anno accademico 2009/10

DIDATTICA dell INFORMATICA di BASE CALCOLO PARALLELO

CALCOLATORI ELETTRONICI Lezione n. Arch_Par 3

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

CdL MAGISTRALE in INFORMATICA A.A corso di Sistemi Distribuiti. 8. Le architetture (prima parte) Prof. S.Pizzutilo

Componenti e connessioni. Capitolo 3

Struttura dell elaboratore elettronico

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

Architettura hardware

Parte II - Reti di Calcolatori ed Internet IL LIVELLO RETE

INDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso

Modelli di interazione tra processi

I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore.

Introduzione alle architetture parallele

La memoria principale

Computer e Programmazione

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

Richiami sull architettura del processore MIPS a 32 bit

Che cos e l Informatica. Informatica generale. Caratteristiche fondamentali degli algoritmi. Esempi di algoritmi. Introduzione

Sistemi Operativi per Calcolatori Paralleli

INCREMENTO DELLE PRESTAZIONI DI UN PROCESSORE

Modelli di interazione tra processi

Algoritmi e loro proprietà. Che cos è un algoritmo? Un esempio di algoritmo

Flops. Differenza tra sustained performance, e di picco (cenni a proposito dei metodi di ottimizzazione, il compilatore ed oltre)

Architettura di Von Neumann

Server mini-tower Dell PowerEdge T20: domande frequenti

Programmazione modulare

Roberto Innocente. 1 dicembre, 2001 R.Innocente - Linux Day Argomenti

Architettura dei calcolatori I parte Introduzione, CPU

Calcolo parallelo, Grid e sistemi ad alta affidabilita'

Il Processore. Informatica di Base -- R.Gaeta 27

Modello a scambio di messaggi

Transcript:

Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Classificazione delle Architetture Parallele Corso di Sistemi Distribuiti Valeria Cardellini Anno accademico 2009/10 Architetture parallele Definizione (Almasi e Gottlieb, 1989): un architettura parallela è un insieme di elementi di elaborazione che cooperano e comunicano per risolvere velocemente problemi di dimensioni considerevoli, talvolta intrattabili su macchine sequenziali Obiettivi: 1. Migliorare le prestazioni E possibile utilizzare un architettura parallela per risolvere Un problema più grande nello stesso tempo (scale-up) Lo stesso problema in minor tempo (speed-up) 2. Migliorare il rapporto costo/prestazioni SD - Valeria Cardellini, A.A. 2009/10 1

Il parallelismo è ovunque! SD - Valeria Cardellini, A.A. 2009/10 2 Architetture parallele (2) Opzioni di progettazione di un architettura parallela: Quanti processori? Quale è la capacità di elaborazione di ciascun processore? Quale tecnologia utilizzano i processori? Quale organizzazione per l elaborazione? Come è organizzata la memoria? In che modo sono interconnessi i processori? Come vengono scambiate le informazioni? SD - Valeria Cardellini, A.A. 2009/10 3

Le sfide della programmazione parallela La programmazione parallela fino ad ora si è sviluppato soprattutto in ambito accademico ed in centri di ricerca: perché? Primo problema: parallelismo limitato nei programmi Secondo problema: elevata latenza degli accessi remoti La vera difficoltà non è realizzare architetture parallele, ma sviluppare applicazioni parallele! Le architetture parallele raggiungono buone prestazioni solo se programmate in modo opportuno Servono algoritmi opportuni Gli ambienti di programmazione non sono molto sviluppati La programmazione parallela è più complessa Il debugging di programmi paralleli è complesso I compilatori autoparallelizzanti sono solo sperimentali SD - Valeria Cardellini, A.A. 2009/10 4 Classificazione di Flynn E la classificazione tradizionale delle architetture parallele Ad opera di Flynn (1966) Proposta quando non c erano ancora vere architetture parallele Sebbene siano passati più di 40 anni, risulta ancora utile! Single instruction stream, single data stream (SISD) Single instruction stream, multiple data stream (SIMD) Multiple instruction stream, single data stream (MISD) Multiple instruction stream, multiple data stream (MIMD) Istruzioni singole Istruzioni multiple Dati singoli SISD MISD Dati multipli SIMD MIMD SD - Valeria Cardellini, A.A. 2009/10 5

SISD e SIMD Single instruction stream, single data stream (SISD) Flusso di istruzioni singolo, flusso di dati singolo Il sistema monoprocessore (architettura di Von Neumann) Single instruction stream, multiple data stream (SIMD) Flusso di istruzioni singolo, flusso di dati multiplo Più processori eseguono la stessa istruzione su flussi di dati diversi: si sfrutta il parallelismo a livello di dati Ogni processore ha la propria memoria dati; ci sono una sola memoria istruzioni ed un solo processore di controllo I processori multimediali presentano una forma (limitata) di parallelismo SIMD; le architetture vettoriali sono la classe più ampia Negli ultimi anni: rinascita degli approcci SIMD grazie alla crescente importanza delle prestazioni grafiche SD - Valeria Cardellini, A.A. 2009/10 6 SISD e SIMD (2) SISD IS IS DS Control Unit PE Memory SIMD Legenda: IS: Instruction Stream DS: Data Stream PE: Processing Element SD - Valeria Cardellini, A.A. 2009/10 7

MISD e MIMD Multiple instruction stream, single data stream (MISD) Flusso di istruzioni multiplo, flusso di dati singolo Non è stata ancora costruita un architettura commerciale di questo tipo Multiple instruction stream, multiple data stream (MIMD) Flusso di istruzioni multiplo, flusso di dati multiplo Ogni processore legge le proprie istruzioni ed opera sui propri dati: parallelismo a livello di thread Il parallelismo a livello di thread è più flessibile del parallelismo a livello di dati ha un applicabilità più diffusa I processori sono spesso commerciali standard (commodity) SD - Valeria Cardellini, A.A. 2009/10 8 MIMD Il modello MIMD è emerso come l architettura prescelta di tipo generale perché: è flessibile si possono costruire architetture MIMD usando processori commerciali SD - Valeria Cardellini, A.A. 2009/10 9

Classificazione estesa Analizziamo un estensione della classificazione di Flynn per considerare diversi tipi di architetture MIMD Classificazione di Flynn Anche dette SMP SD - Valeria Cardellini, A.A. 2009/10 10 Architetture MIMD Shared memory Interconnection network I/O1 I/On Interconnection network PE1 PEn PE1 PEn Processors M1 P1 Mn Pn Multiprocessori (memoria condivisa) Multicomputer (message passing) SD - Valeria Cardellini, A.A. 2009/10 11

MIMD: multiprocessori Multiprocessori: architetture MIMD a memoria condivisa (shared memory) La memoria ha un unico spazio di indirizzamento, condiviso tra tutti i processori I processori comunicano tramite variabili condivise e ciascun processore è in grado di accedere ad ogni locazione di memoria tramite istruzioni load e store Occorre un meccanismo di sincronizzazione, per coordinare il comportamento di processi che possono essere in esecuzione su processori differenti I multiprocessori possono avere memoria condivisa e centralizzata, ma possono anche avere memoria condivisa e distribuita Memoria condivisa e distribuita: la memoria è fisicamente distribuita ma è logicamente condivisa SD - Valeria Cardellini, A.A. 2009/10 12 MIMD: multicomputer Multicomputer: architetture MIMD a scambio di messaggi Non hanno una memoria condivisa a livello di architettura, ma le memorie sono riservate per i singoli processori Lo spazio di indirizzamento è costituito da più spazi privati, logicamente disgiunti e non indirizzabili da parte dei processori remoti La comunicazione tra i processori avviene mediante scambio di messaggi (message passing) esplicito Procedure per inviare e ricevere messaggi (send e receive) SD - Valeria Cardellini, A.A. 2009/10 13

Classificazione estesa (2) Aggiungiamo un ulteriore livello nella classificazione Classificazione di Flynn Anche dette SMP SD - Valeria Cardellini, A.A. 2009/10 14 Classificazione dei multiprocessori Classificazione basata sul modo in cui i multiprocessori implementano la memoria condivisa: UMA (Uniform Memory Access) NUMA (Non Uniform Memory Access) COMA (Cache Only Memory Access) SD - Valeria Cardellini, A.A. 2009/10 15

Classificazione dei multiprocessori: UMA Multiprocessori con memoria ad accesso uniforme Anche detti SMP (Symmetric MultiProcessor): multiprocessori simmetrici Ogni processore ha lo stesso tempo di accesso alla memoria principale, indipendentemente dal processore richiedente e dalla locazione della parola di memoria richiesta Prestazioni eccellenti ma sono limitate per dimensioni (numero di processori) Esempi: multi-core basati su ISA x86 (ad es. Intel Xeon, AMD Opteron), IBM Power Express (con processore IBM Power 6), NEC SX-8, SD - Valeria Cardellini, A.A. 2009/10 16 Classificazione dei multiprocessori: NUMA Multiprocessori con memoria ad accesso non uniforme Alcuni accessi in memoria sono più veloci di altri a seconda del processore richiedente e dalla locazione della parola di memoria richiesta; un processore può accedere: rapidamente alla propria memoria locale più lentamente alle memorie degli altri processori o alla memoria condivisa il caching permette di nascondere in una certa misura la differenza nel tempo di accesso Raggiungono dimensioni maggiori dei multiprocessori UMA Esempi: SIG Altix 330, Sun Fire X4600, Cray X1 (prodotto fino al 2003) SD - Valeria Cardellini, A.A. 2009/10 17

Classificazione dei multiprocessori: COMA Architetture COMA (Cache Only Memory Access) Come NUMA anche questi multiprocessori non sono uniformi nell accesso alla memoria La memoria principale viene usata come se fosse una cache Ogni pagina non ha un processore prefissato di appartenenza La memoria è detta di attrazione (attraction memory), in quanto si limita ad attrarre le linee di cache quando sono richieste In contrapposizione a home memory nei multiprocessori NUMA Due nuovi problemi: Come localizzare le linee di cache Come evitare di cancellare dalla memoria l ultima copia di una linea di cache SD - Valeria Cardellini, A.A. 2009/10 18 Classificazione dei multicomputer Architetture MPP (Massively Parallel Processor) Molti processori autonomi, interconnessi con reti proprietarie a larga velocità Cluster Nodi totalmente separati, interconnessi con reti veloci e tecnologia commerciale (tipicamente tecnologia off-the-shelf) Approccio molto efficiente in termini di costo In passato, anche indicati con i termini: NOW (Network of Workstations) COW (Cluster of Workstations) SD - Valeria Cardellini, A.A. 2009/10 19

Classificazione estesa (3) Aggiungiamo un ulteriore livello nella classificazione dei multiprocessori e dei multicomputer Classificazione di Flynn Anche dette SMP SD - Valeria Cardellini, A.A. 2009/10 20 Classificazione dei multiprocessori (2) Abbiamo già visto il primo livello di classificazione dei multiprocessori Multiprocessori UMA (o SMP) Multiprocessori NUMA Multiprocessori COMA La categoria dei multiprocessori NUMA comprende: CC-NUMA: Cache Coherent NUMA NC-NUMA: Non Cache Coherent NUMA SD - Valeria Cardellini, A.A. 2009/10 21

Diffusione delle varie architetture nei top 500 Lista dei 500 top supercomputer: http://www.top500.org/ Prestazioni misurate tramite il benchmark Linpack (soluzione di un sistema denso di equazioni lineari Ax=b) Classifica aggiornata ogni 6 mesi In un decennio: scomparsa di uniprocessori, SMP e SIMD dalla lista dei top 500 crescita dei cluster SD - Valeria Cardellini, A.A. 2009/10 22