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

Slides:



Advertisements
Presentazioni simili
                      Insertion-Sort
Advertisements

Introduzione agli algoritmi. Definizione Sistema di regole e procedure di calcolo ben definite che portano alla soluzione di un problema con un numero.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti ottimi.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Stesso approccio.
Informatica B Allievi Elettrici AA La progettazione per raffinamenti successivi.
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 10/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmo di Ford-Fulkerson
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Esercizio 4 Data una stringa P di lunghezza m e definita sullalfabeto, scrivere un programma PERL per calcolare la seguente funzione: PREFIX_FUNCTION:
Algoritmi e Strutture Dati (Mod. A)
Alberi di Ricorrenza Gli alberi di ricorrenza rappresentano un modo conveniente per visualizzare i passi di sostitu- zione necessari per risolvere una.
Algoritmi e Strutture Dati Valutazione del tempo di esecuzione degli algoritmi.
APPUNTI SUL LINGUAGGIO C
Heap binari e HeapSort.
QuickSort Quick-Sort(A,s,d) IF s < d THEN q = Partiziona(A,s,d) Quick-Sort(A,s,q-1) Quick-Sort(A,q + 1,d)
Algoritmo SelectSort Invariante di ciclo: ad ogni passo
Radix-Sort(A,d) // A[i] = cd...c2c1
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Heap Ordinamento e code di priorità Ugo de Liguoro.
La complessità media O(n log n) di Quick-Sort vale soltanto se tutte le permutazioni dell’array in ingresso sono ugualmente probabili. In molte applicazioni.
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
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.
ND-partizione (A) n   A  somma  0 M  1/2 (  a i ) for i  1 to n do S[i]  choice ({true, false}) if S[i] then somma  somma + a i if somma > M then.
Algoritmi e Strutture Dati
1 Ordinamento (Sorting) INPUT: Sequenza di n numeri OUTPUT: Permutazione π = tale che a 1 ’  a 2 ’  … …  a n ’ Continuiamo a discutere il problema dell’ordinamento:
1 Ordinamento (Sorting) Input: Sequenza di n numeri Output: Permutazione π = tale che: a i 1  a i 2  ……  a i n Continuiamo a discutere il problema dell’ordinamento:
Prof. Cerulli – Dott. Carrabs
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 4 Ordinamento: Heapsort Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Progettare algoritmi.
Complessità Computazionale
Problema dell’Ordinamento. Problema dell’ordinamento Formulazione del problema –Si vuole ordinare una lista di elementi secondo una data proprietà P Esempio:
Algoritmi e Strutture Dati HeapSort. Select Sort: intuizioni L’algoritmo Select-Sort  scandisce tutti gli elementi dell’array a partire dall’ultimo elemento.
Algoritmi e Strutture Dati Luciano Gualà
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.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.2011/2012 Prof.ssa Rossella Petreschi Interconnessione tramite reti Lezione n°6.
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi Somme prefisse Lezione n°2.
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 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.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2011/2012 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 07/04/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI

Verso un ordinamento ottimo Gli algoritmi paralleli di ordinamento visti fino ad ora raggiungono, nei casi migliori, un costo O(n log 2 n) su PRAM CREW. Nel 1988 R. Cole presentò sul SIAM Journal Computing la prima versione del pipelined-merge sort (poi conosciuto come algoritmo di Cole) che richiede un tempo parallelo O(log n) su una PRAM. Da allora varianti e raffinamenti dell’algoritmo si sono susseguiti in letteratura fino a raggiungere un costo ottimo su PRAM EREW. Nel seguito presentiamo l’idea alla base di questo algoritmo e una serie di concetti e/o algoritmi necessari per la sua realizzazione. Il dettaglio dell’algoritmo è lasciato come tesina di approfondimento. Algoritmi Paralleli e Distribuiti a.a. 2008/09 2

3 Ricerca di un elemento in un vettore ordinato Variabili: N: numero dei processori y: elemento da cercare X = (x 1, x 2, …, x n ), tale che x 1  x 2 …  x n : vettore in cui cercare y l ed r (inizializzati a 0 ed n rispettivamente): estremi del vettore su cui si lavora; q 0,…q N+1 (relative a ciascun processore + 2 aggiuntive): indice degli elementi da analizzare; c 0,…c N+1 (inizializzate a 0, c N+1 inizializzata ad 1): identificatori del sottovettore su cui iterare. Input: X, y Output: i t.c. x i  y  x i+1 Passo 1: dividi iterativamente il vettore in sottovettori più o meno bilanciati finché il numero di elementi nel sottovettore identificato non è  N e controlla se X[q i ]=y; Passo 2: controlla se nel sottovettore di dimensione  N è presente l’elemento cercato.

Algoritmi Paralleli e Distribuiti a.a. 2008/09 4 Algoritmo Ricerca Binaria P 1 :c 0 = 0; c N+1 = 1 for j = 1 to N pardo P j : while (r-l) > N do if j = 1 then q 0 = l; q N+1 = r q j = l +  j (r-l) / (N+1)  if y = X[ q j ] then return q j else if y > X[ q j ] then c j = 0 else c j = 1 if c j < c j+1 then l = q j ; r = q j+1 if j = 1 and c 0 < c 1 then r = q 1 if j  r-l then if y = X[ l+j ] then return l+j else if y > X[ l+j ] then c j = 0 else c j = 1 if c j < c j+1 then return l+j if j = 1 and c 0 < c 1 then return l Passo 1 Passo 2

Algoritmi Paralleli e Distribuiti a.a. 2008/09 5 Esempio x --  n = 14 N = 2 y = 37 q0q0 q1q1 q2q2 q3q c0011 lr x q0q0 q1q1 q2q2 q3q c0001 lr x c0011 lr Passo 2 return 9

Algoritmi Paralleli e Distribuiti a.a. 2008/09 6 Complessità dell’algoritmo Ciascuna iterazione del Passo 1 richiede tempo O(1). Analizziamo il numero di iterazioni esplicitando la dimensione s i del sottovettore nell’iterazione i-esima: s 0 = n+2 s i+1 = s i / (N+1) = s 0 / (N+1) i Quindi il numero totale di iterazioni è: log N+1 (n+2) = log 2 (n+2) / log 2 (N+1) Il Passo 2 richiede tempo costante, quindi il tempo complessivo richiesto dall’algoritmo è O(log 2 (n+2) / log 2 (N+1)). Il modello di PRAM è CREW perché tutti gli N processori accedono contemporaneamente alle variabili y, l, r e c. Si noti che, quando N = O(1), il costo complessivo dell’algoritmo è O(log n): pari all’ottimo nel sequenziale. Quando N = O(n) il tempo diventa costante.

Algoritmi Paralleli e Distribuiti a.a. 2008/09 7 Il concetto di rango Dati X = (x 1, x 2, …, x t ), Y = (y 1, y 2, …, y s ) e z, con z, x i e y j nello stesso insieme U, definiamo: 1. rango(z:X) = numero di elementi in X  z Es: X = (-3,8,-2,5), z = 1, rango(z:X) = 2 2. rango(Y:X) = (r 1, r 2, … r s ) con r i = rango(y i :X) Es: X = (15,-3,12,1,-5), Y = (3,-13,-2), rango(Y:X) = (3,0,2) Si noti inoltre che vale la relazione*: rango(x:A  B) = rango(x:A) + rango(x:B) *Nota: per semplicità assumiamo che i valori siano tutti distinti.

Algoritmi Paralleli e Distribuiti a.a. 2008/09 8 Fondere tramite rango Il problema di fondere due vettori ordinati A e B in un unico vettore C si può risolvere calcolando il rango degli elementi di A rispetto a B e di quelli di B rispetto ad A: rango(x:A  B) è esattamente la posizione in cui l’elemento x si trova nel vettore C. L’algoritmo di Ricerca Binaria può essere utilizzato per calcolare il rango di un elemento in un vettore, ed in particolare il rango di ogni elemento di A in B e viceversa. Con tali informazioni possiamo calcolare C. Esempio: A=(-2, -1, 8) B=(3,6) A  B=(-2, -1, 8, 3, 6) rango(A:B)=(0, 0, 2) rango(B:A)=(2,2) rango=(1, 2, 5, 3, 4) C=(-2, -1, 3, 6, 8)