Presentazione sul tema: "Università degli studi di L’Aquila Anno Accademico 2006/2007 Corso di: Algoritmi e Dati Distribuiti Titolare: Prof. Guido Proietti Orario: Martedì: 11.30."— Transcript della presentazione:
Università degli studi di L’Aquila Anno Accademico 2006/2007 Corso di: Algoritmi e Dati Distribuiti Titolare: Prof. Guido Proietti Orario: Martedì: 11.30 – 13.30 – Aula C 3.16 Mercoledì: 15.00 – 17.00 – Aula C 3.29 Giovedì: 9.30 - 11.30 – Aula 2.4 Ricevimento: Martedì 14.30-16.30 Testi e Riferimenti: Dispense + Slide http://www.di.univaq.it/~proietti/didattica.html
Struttura del corso PRIMA PARTE: Sistemi distribuiti COOPERATIVI a passaggio di messaggi 1.Elezione del leader 2.Minimo albero ricoprente SECONDA PARTE: Sistemi distribuiti SUSCETTIBILI DI FALLIMENTI 1.Fallimenti benigni: Problema del consenso 2.Fallimenti maliziosi: Problema del consenso Prova parziale: Martedì 13 Febbraio (?) TERZA PARTE: Reti di comunicazione senza fili Problemi di ottimizzazione (network design) QUARTA PARTE: Sistemi distribuiti NON COOPERATIVI Equilibri di Nash Progettazione algoritmica di meccanismi Problemi di ottimizzazione su grafi Prova finale: Martedì 20 Marzo (?) Esame Orale (ristretto alla seconda metà del corso per gli esonerati alla prova parziale)
The System Topology: a network (connected undirected graph) Processors (nodes) Communication channels (edges) Degree of synchrony: asynchronous versus synchronous (universal clock) Degree of symmetry: anonymous (processors are indistinguishable) versus non-anonymous Degree of Uniformity: uniform (number of processors is unknown) versus non-uniform Local algorithm: the algorithm associated to a single processor Distributed algorithm: the “composition” of local algorithms
Notation n processors: p 0, p 1, …, p n-1. Each processor knows nothing about the network topology, except for its neighbors, numbered from from 1 to r Communication takes place only through message exchanges, using buffers associated with processors outbuf i [k], inbuf i [k], k=1,…,r. 1.Send: send(i,j,m) 2.Delivery: del(i,j,m) Q i : the state set for p i, containing a distinguished initial state; each state describes the internal status of the processor and the status of the buffers
Configuration and events System configuration: A vector [q 0,q 1,…,q n-1 ] where q i is the state of p i Events: Computation events (internal computations plus sending of messages), and message delivering events
Execution C 0 1 C 1 2 C 2 3 … where C i : A configuration i : An event C 0 : An initial configuration
Asynchronous Systems No upper bound on delivering times Admissible execution: each message sent is eventually delivered
Synchronous Systems Each processor has a clock, and computation takes place in rounds. At each round each processor: 1. Reads the incoming messages buffer 2. Makes some internal computations 3. Sends messages which will be read in the next round.
Message Complexity The total number of messages sent during any admissible execution of the algorithm. In other words, the number of delivery events.
Time Complexity Synchronous: The number of rounds until termination. Asynchronous: not really meaningful
Example: Distributed Depth-First Search –General overview Algorithm –Begin at some source vertex, r 0 –when reaching any vertex v »if v has an unvisited neighbor, then visit it and proceed from it »otherwise, return to parent(v) –when we reach the parent of some vertex v such that parent(v) = NULL, then we terminate since v = r 0 DFS defines a tree, with r 0 as the root, which reaches all vertices in the graph –“back edges” = graph edges not in tree –sequential time complexity = O(|edges|)
Distributed DFS (cont’d.) –distributed version = token-based the token traverses the graph in a depth-first manner using the algorithm described above Message complexity – (|edges|) (lower bound of (|edges|) to explore every edge) »note that edges are not examined from both endpoints; when edges (v,w) is examined by v, w then knows that v has been visited Time complexity (sync systems): O(n)
Distributed DFS (cont’d.) Time complexity analysis –time: »ensure that vertices visited for the first time know which of their neighbors have/have not been visited; thus we make no unnecessary vertex explorations »algorithm: freeze the DFS process; inform all neighbors of v that v has been visited; get Ack messages from those neighbors; restart DFS process »additional time cost each time a vertex is first visited = O(1) »only edges of the DFS tree are traversed »therefore, time complexity = O(n)
Your consent to our cookies if you continue to use this website.