Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 10/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.

Slides:



Advertisements
Presentazioni simili
Estendere i linguaggi: i tipi di dato astratti
Advertisements

PROGRAMMARE IN PASCAL (le basi)
LE RETI DI COMPUTER Presentazione realizzata da: Pipitone Antonella VDp Gennaio 2008.
Realizzato da: Accurso Margherita VDp A.S. 2007/2008 GENNAIO
Algoritmi e Programmazione
Lez. 121 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Progettazione.
Routing Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All Rights Reserved)
Programmazione Concorrente
Processi Concetto di processo Scheduling dei processi
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
2 luglio 2006URM2 – ING- OOP0304 OL G. Cantone e A. Lomartire 1 Programmazione Orientata agli Oggetti Processi, task e thread Java (ed esempi) Università
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione 1, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a.2009/2010 Prof.ssa Chiara Petrioli.
Algoritmi Paralleli e Distribuiti a.a. 2008/09
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 29/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
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 28/04/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 27/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 15/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
U V U V (a) |cfc|=2 prima e dopo (b) |cfc|=2 prima e |cfc|=1 dopo
Algoritmi e Strutture Dati (Mod. B)
Memorie Condivise Distribuite
Istruzioni Iterative Nicola Fanizzi
Sistemi Operativi GESTIONE DEI PROCESSI.
CAPITOLO 7.
Progetto di una architettura per lesecuzione distribuita e coordinata di azioni Progetto per lesame di Reti di Calcolatori L-S Prof. Antonio Corradi Finistauri.
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Interazione e sincronizzazione
Prof. Cerulli – Dott.ssa Gentili
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.
Programmazione Strutturata
L’architettura a strati
Di Luca Santucci e Riccardo Latorre LA CONDIVISIONE E L’ACCESSO ALLE RISORSE DI RETE.
Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori.
TURBOPASCAL L’iterazione - prof. V. Riboldi -.
1 Esercitazione Sistemi distribuiti: sistemi che risisedono su più calcolatori interconnessi da una rete di comunicazione Algoritmi distribuiti: programmi.
Reti di Calcolatori Introduzione al corso Capitolo 1.
Tipi e topologie di LAN Lezione 2.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 07/04/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Reti di computer Condivisione di risorse e
Prof. ing. Paolo Bidello AA 2005/2006 Laboratorio Informatico Promemoria degli argomenti: Reti locali (LAN)
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Gli interrupt Richiesta di attenzione alla cpu. Viene generato un segnale detto di interrupt diretto alla cpu.
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.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.2011/2012 Prof.ssa Rossella Petreschi Interconnessione tramite reti Lezione n°6.
Algoritmi Avanzati a.a.2015/2016 Prof.ssa Rossella Petreschi Lezione n°10.
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi Lezione n°9.
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2015/2016 Prof.ssa Rossella Petreschi
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Lezione n°19 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.2011/2012 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi
Transcript della presentazione:

Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 10/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI

Algoritmi Paralleli e Distribuiti a.a. 2008/09 2 Caricare n valori distinti in un 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 Poiché bisogna caricare N elementi il tempo è pari a N cba

Algoritmi Paralleli e Distribuiti a.a. 2008/09 3 Caricare n 2 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 = 1 to k 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

Algoritmi Paralleli e Distribuiti a.a. 2008/09 4 Sistema Distribuito Un Sistema Distribuito è un insieme interconnesso di computer, processi o processori, ciascuno definito in modo autonomo. Un sistema distribuito si può pensare semplicemente come un sistema fisico (computer connessi da una rete) o più in generale come un sistema logico: insieme di processi connessi da un meccanismo di scambio di messaggi.... è un sistema in cui la caduta di un computer del quale ignoravi persino lesistenza, può rendere il tuo computer inutilizzabile Lensi Lamport... è un modo di organizzare e considerare una famiglia di risorse indipendenti e possibilmente distanti (o debolmente connesse), come se facessero parte di un unico grande pacchetto Andrew Tannenbaum

Algoritmi Paralleli e Distribuiti a.a. 2008/09 5 Differenza fra sistema distribuito e parallelo Sistema distribuitoSistema parallelo sistema multiutente che si riferisce ad ambienti di lavoro di tipo collaborativi (e-commerce, applicazioni di businness, ecc…) è pensato per essere usato da un singolo utente o processo per garantire la massima velocizzazione di una singola applicazione; viene naturalmente associato al mondo scientifico computer, processi o processori non omogenei e asincroni processori omogenei sincroni computer, processi o processori fra loro autonomi processori usati insieme per ununica computazione (nelle SIMD manca lautonomia) problemi di sicurezza connessi alla rete (perdita di messaggi, cadute di sitema, condivisione dei dati, etc…) no network, no problem no network, no use in genere è considerato come un sistema fisicamente e logicamente inaccessibile

Algoritmi Paralleli e Distribuiti a.a. 2008/09 6 Trasmissione dellinformazione Nei sistemi distribuiti, la trasmissione dellinformazione assume un ruolo fondamentale. A seconda del sistema preso in considerazione, la rete di interconnessione può consistere in connessioni punto a punto (in tal caso ogni connessione gestisce il traffico esclusivamente fra due processori) o in canali di trasmissione (broadcast channels) che distribuiscono linformazione a tutti i processori appartenenti ad un agglomerato (cluster) predefinito. I processori non condividono fisicamente alcuna memoria e quindi lo scambio di informazioni fra essi deve per forza passare lungo la specifica rete di interconnessione.

Algoritmi Paralleli e Distribuiti a.a. 2008/09 7 Task Definiamo task un frammento di codice sequenziale che deve essere eseguito da un singolo processore. Quando due task debbono comunicare fra loro durante lesecuzione, ma i processori che li stanno eseguendo non sono connessi direttamente nella rete, non cè modo di effettuare tale comunicazione in modo diretto. Ogni processore nel sistema deve pertanto, sia eseguire il task che gli è stato assegnato, sia ridistribuire linformazione secondo le necessità del caso. Queste due operazioni, per quanto possibile, non devono interferire fra di loro. In tal modo ogni processore viene visto dal sistema come una coppia di entità logiche che lavorano in modo indipendente: lentità di processo che esegue il proprio compito e lentità di comunicazione che trasmette linformazione nella rete.

Algoritmi Paralleli e Distribuiti a.a. 2008/09 8 Algoritmo Distribuito Un algoritmo distribuito D si può rappresentare come un grafo G = (P, C), dove linsieme dei nodi è linsieme dei processori e linsieme degli spigoli orientati è un insieme di canali di comunicazione (generalmente unidirezionali). Tutti i processori, con leccezione di un sottoinsieme al quale è permesso di mandare messaggi spontaneamente, sono reattivi, ovvero eseguono un qualunque task come risposta al ricevimento di un messaggio da un altro task. Un solo blocco di processori P init può inizialmente eseguire un task a scopo di inizializzazione.

Algoritmi Paralleli e Distribuiti a.a. 2008/09 9 Schema base di un algoritmo distribuito begin P init :exec eventuali operazioni di inizializzazione; send messaggio ai vicini repeat P i :receive messaggio M e B M è vero exec qualche operazione send messaggi ai vicini until un segnale di terminazione globale arriva a D end La operazione di send invia un messaggio su uno o più canali di comunicazione uscenti da P i. Ogni processore ha una coda di messaggi ricevuti. La receive estrae un messaggio dalla coda di P i.

Algoritmi Paralleli e Distribuiti a.a. 2008/09 10 Broadcast in un sistema distribuito ad anello Le connessioni si assumono unidirezionali, da P i a P i+1 P 0 ha linformazione da distribuire nella variabile inf begin P 0 :send inf al successore repeat P i :receive inf da predecessore send inf al successore until P 0 riceve messaggio dal predecessore end In una rete ad anello ad n nodi, vengono inviati n messaggi in n passi P0P0 P2P2 P n-1 P1P1 P3P3

Algoritmi Paralleli e Distribuiti a.a. 2008/09 11 Broadcast in una qualsiasi rete a connessione fissa Assumiamo connessioni unidirezionali e rete aciclica begin P init :N init = { q : q è un vicino di P init } send messaggio ad ogni q in N init repeat P i :receive messaggio da un vicino p N i = { q : q è un vicino di P i } send messaggio ad ogni q in N i until … end Si ricorda che P i invia lo stesso messaggio a tutti i suoi vicini contemporaneamente però sia i processori sia i canali di comunicazione sono eterogenei, quindi il tutto è asincrono. In una rete di n nodi, vengono inviati O(m) messaggi in O(d) passi m = numero archi d = diametro della rete Manca il segnale di terminazione globale P init

Algoritmi Paralleli e Distribuiti a.a. 2008/09 12 Broadcast con eco in una qualsiasi rete a connessione fissa Per risolvere il problema della terminazione si usa leco Servono connessioni bidirezionali begin P eco :N eco = { q : q è un vicino di P eco } send messaggio ad ogni q in N eco cont eco = 0 while cont eco < | N eco | receive messaggio da un vicino incrementa cont eco termina P i eco :receive messaggio da un vicino p che chiamo padre N i = { q p : q è un vicino di P i } send messaggio ad ogni q in N i cont i = 0 while cont i < | N i | receive messaggio da un vicino incrementa cont i send messaggio al padre p end In una rete di n nodi, vengono inviati O(m) messaggi in O(d) passi