Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi Interconnessione tramite reti Lezione n°6.

Slides:



Advertisements
Presentazioni simili
MATLAB.
Advertisements

MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Algoritmi e Programmazione
Ottimizzazione statica del codice per processori pipelined Canella Matteo & Miglioli Filippo.
MICROCONTROLLORI Di Tiziano Ragazzi.
Algoritmi Paralleli e Distribuiti a.a. 2008/09
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 31/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 22/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 12/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 05/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 17/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 20/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 06/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 19/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 10/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
Algoritmi e Strutture Dati (Mod. A)
Algoritmi e Strutture Dati Valutazione del tempo di esecuzione degli algoritmi.
1 2. Analisi degli Algoritmi. 2 Algoritmi e strutture dati - Definizioni Struttura dati: organizzazione sistematica dei dati e del loro accesso Algoritmo:
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
Introduzione1 Algoritmi e strutture dati - Definizioni Struttura dati: organizzazione sistematica dei dati e del loro accesso Algoritmo: procedura suddivisa.
APPUNTI SUL LINGUAGGIO C
Il Linguaggio Macchina
Algoritmo SelectSort Invariante di ciclo: ad ogni passo
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
2) Trattamento dell'informazione. Lab.Calc. I AA 2002/03 - cap.22 Esempio Supponiamo di volere calcolare X, per uno o più possibili valori di Y, in base.
Estensioni allarchitettura di Von Neumann Vito Perrone Corso di Informatica A per Gestionali.
Strutture di controllo in C -- Flow Chart --
Sistemi Complessi di reti sequenziali Pipeline
Algoritmi e Strutture Dati
ARCHITETTURA DI UN ELABORATORE
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 17/04/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 08/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Unità centrale di processo
Sistemi ad elevate prestazioni Lezione 1
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali
Paola Disisto, Erika Griffini, Yris Noriega.  Insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 07/04/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
13 ottobre Decisioni F. Bombi 13 ottobre 2002.
L’esecuzione dei programmi
Informatica Generale Marzia Buscemi
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Struttura Fondamentale degli Elaboratori Elaboratore –È un sistema numerico –È un sistema automatico –È un sistema a programamzione registrabile –Ha una.
Click to add text L’ Unità di Elaborazione. Struttura : Unità di controllo: coordina attività CPU ALU: unità aritmetico-logica, esegue operazioni tra.
I Microprocessori Unità 3 del libro Internet Working Sistemi e reti.
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi Simulazione di lettura e scrittura concorrente Tecnica dell’accelerated cascading Lezione.
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi Complessità e Trasportabilità Lezione n°3.
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi Albero ricoprente di costo minimo Lezione n°12.
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi Lezione n°10.
Algoritmi Avanzati a.a. 2011/12 Lezione del 02/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi Algoritmi distribuiti Lezione n°9.
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi Lezione n°9.
Algoritmi Avanzati a.a.2012/2013 Prof.ssa Rossella Petreschi Albero Ricoprente Lezione n°9.
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi Somme prefisse Lezione n°2.
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2012/2013 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2015/2016 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi
Transcript della presentazione:

Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi Interconnessione tramite reti Lezione n°6

AA Reti di interconnessione La comunicazione tra processori avviene passando attraverso opportuni canali direttamente dalla memoria locale di un processore a quella di uno o più processori adiacenti. Esempi di reti di interconnessione: – Vettore – Matrice (mesh) – Albero binario completo – Ipercubo – etc

AA Broadcast su rete a Vettore Si adoperano N processori Input su P 0 Broadcast(x) begin P 0 :a 0 = x for i = 1 to N-1 do P i : a i = a i-1 end Tempo parallelo N xx N-1

AA Caricare n valori distinti in un vettore ovvero pipeline su rete a vettore Si adoperano N processori begin for h = 0 to N-1 do for i = 0 to h pardo P i :if (i = 0) then a 0 = read(); b 0 = a 0 else a i = a i-1 ; b i = a i end All’istante i, tutti i processori dallo 0-esimo all’h-esimo lavorano in parallelo caricando nella propria memoria locale il valore contenuto nella memoria locale del processore che lo precede Poiché bisogna caricare N elementi il tempo parallelo totale rimane N cba

AA Pipelining Una CPU con pipeline è un modello semplice di macchina parallela composta da cinque stadi specializzati, capaci di eseguire, ciascuno in maniera sequenziale, una delle operazione elementari caratterizzanti l’elaborazione di una istruzione da parte di una normale CPU (lettura dell’istruzione dalla memoria, decodifica istruzione, lettura degli operandi dai registri,esecuzione dell’istruzione, scrittura del risultato nel registro opportuno). Ad ogni ciclo di clock dall'ultimo stadio esce un'istruzione completata. A regime, in uno stesso istante, ogni stadio esegue l’istruzione che lo specializza su successive diverse istruzioni. Di conseguenza si guadagna una maggior velocità di esecuzione a prezzo di una maggior complessità circuitale del microprocessore. L'implementazione di una pipeline non sempre moltiplica il “throughput” finale, in quanto questo dipende da quante istruzioni possono essere eseguite in parallelo senza creare conflitti o errori di esecuzione. Istruzioni che possono richiedere l'elaborazione di dati non ancora disponibili o la presenza di salti condizionati sono due esempi tipici di istruzioni non parallelizzabili..

AA Broadcast su mesh Si adoperano RxC processori Input su P 0,0 Broadcast(x) begin P 0,0 :a 0,0 = x for j = 1 to C-1 do P 0,j : a 0,j = a 0,j- for i = 1 to R-1 do for j = 0 to C-1 pardo P i,j : a i,j = a i-1,j end Tempo parallelo C+R xx xx xx x x x x C

AA Caricare RxC valori distinti in una mesh Si adoperano RxC processori begin for k = 1 to R do for h = 0 to C-1 do for j = 0 to h pardo P 0,j :if (j = 0) then a 0,0 = read(); b 0,0 = a 0,0 else a 0,j = a 0,j-1 ; b 0,j = a 0,j if (k < R) then for i = k downto 1 pardo for j = 0 to C-1 pardo P i,j :a i,j = a i-1,j ; b i,j = a i,j end Poiché bisogna caricare R  C elementi il tempo è pari a R  C cbaihg lkj fed g a feda

AA Con n foglie e 2n-1 processori Input alla radice Broadcast(x) begin P 1 :a 1 = x for i = 0 to log n -1 do for j = 2 i to 2 i+1 -1 pardo P j : a 2j = a j a 2j+1 = a j end Tempo parallelo logaritmico Broadcast su albero binario a2a2 a4a4 a5a5 a3a3 a6a6 a7a7 a1a1

AA Si adoperano n=2 d processori Input su P 0 Broadcast(x) begin P 0 :a 0 = x for i = 0 to d-1 do for j = 0 to 2 i -1 pardo P j : a j+2 i = a j end Tempo parallelo d = log n Broadcast su ipercubo xx xx xx xx xx xx xx x

AA Somma su mesh Si adoperano RxC processori Ciascun processore ha un proprio valore nella variabile a Somma_Mesh() begin for i = 1 to R-1 do for j = 0 to C-1 pardo P i,j : a i,j = a i,j + a i-1,j for j = 1 to C-1 do P R-1,j : a R-1,j = a R-1,j + a R-1,j-1 return a R-1, C-1 end Tempo parallelo R+C   aa  a  a 

AA Somma su albero binario (1) Con n foglie e 2n-1 processori Input alle foglie output alla radice Numerazione dalla radice alle foglie Somma(x) begin for i = n to 2n-1 pardo P i :a i = read() /* input alle foglie */ for i = log n -1 to 0 do for j = 2 i to 2 i+1 -1 pardo P j : a j = a 2j + a 2j+1 return a 1 end Tempo parallelo logaritmico X 1 +…+x 4 X 1 +x 2 X 3 +x 4 X 5 +…+x 8 X 5 +x 6 X 7 +x 8 X 1 +…+x 8 x1x1 x2x2 x2x2 x3x3 x5x5 x6x6 x7x7 x8x8 P2P2 P1P1 P4P4 P8P8 P5P5 P6P6 P7P7 P3P3 P 15

AA X 1 +…+x 4 X 1 +x 2 X 3 +x 4 X 5 +…+x 8 X 5 +x 6 X 7 +x 8 X 1 +…+x 8 x1x1 x2x2 x2x2 x3x3 x5x5 x6x6 x7x7 x8x8 P 13 P 15 P9P9 P1P1 P 10 P 11 P 12 P 14 P8P8 Somma su albero binario (2) Con n foglie e 2n-1 processori Input alle foglie output alla radice Numerazione dalle foglie alla radice Somma(x) begin for i = 1 to n pardo P i :a i = read() /* input alle foglie */ for i = log n -1 to 0 do for j = 2 i to 2 i+1 -1 pardo P 2n-j : a 2n-j = a 2n-2j + a 2n-(2j+1) return a 2n-1 end Tempo parallelo logaritmico

AA Si adoperano n=2 d processori Ciascun processore ha un proprio valore nella variabile a Somma_Ipercubo() begin for i = d-1 downto 0 do for j = 0 to 2 i -1 pardo P j :a j = a j + a j+2 i return a 0 end Tempo parallelo d = log n Somma su ipercubo   a2a2 a3a3 a0a0 a1a1 a6a6 a7a7 a4a4 a5a5  