Parallel sorting. Algoritmi Avanzati. Davide Lo Re

Documenti analoghi
ADT Coda con priorità

Alberi binari di ricerca

Algoritmi e Strutture Dati

Strutture di accesso ai dati: B + -tree

Informatica Teorica. Macchine a registri

Heap e code di priorità

Macchine RAM. API a.a. 2013/2014 Gennaio 27, 2014 Flavio Mutti, PhD

Algoritmi e Strutture Dati. HeapSort

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento

AMBIENTE EXCEL CALCOLO DEL RESTO DELLA DIVISIONE FRA NATURALI

4.1 Modelli di calcolo analisi asintotica e ricorrenze

Cammini minimi. Definizioni. Distanza fra vertici. Proprietà dei cammini minimi. Algoritmi e Strutture Dati

PROGRAMMAZIONE STRUTTURATA

2.3 Cammini ottimi. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

UNIVERSITA DEGLI STUDI DI PERUGIA

ESPONENZIALI E LOGARITMI. chiameremo logaritmica (e si legge il logaritmo in base a di c è uguale a b ).

= < < < < < Matematica 1

Esercizi sulla conversione tra unità di misura

Due algoritmi di ordinamento. basati sulla tecnica Divide et Impera: Mergesort e Quicksort

FILE E INDICI Architettura DBMS

UNIVERSITÀ di ROMA TOR VERGATA

Esercitazione 4. Comandi iterativi for, while, do-while

Anno 3. Funzioni esponenziali e logaritmi: le 4 operazioni

Esercizi Capitolo 6 - Alberi binari di ricerca

Esempio : i numeri di Fibonacci

0.1 Esercizi calcolo combinatorio

La rappresentazione dell algoritmo Diagrammi di flusso

Esercizi per il corso di Algoritmi e Strutture Dati

Laboratorio di Algoritmi e Strutture Dati II Semestre 2005/2006. Ordinamenti: mergesort e quicksort

11.4 Chiusura transitiva

Somma di numeri floating point. Algoritmi di moltiplicazione e divisione per numeri interi

Le principali architetture dei Convertitori Analogico/Digitale

Prova in itinere di Metodi di Ottimizzazione AA 2007/2008: compito A

1 Definizione di sistema lineare omogeneo.

Il concetto di calcolatore e di algoritmo

CORSO DI LAUREA IN MATEMATICA

ax 1 + bx 2 + c = 0, r : 2x 1 3x = 0.

Metodi e Modelli per l Ottimizzazione Combinatoria Il problema del flusso di costo minimo

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

FUNZIONI QUADRATICHE

Circonferenze del piano

Informatica 10. appunti dalla lezione del 16/11/2010

1 Multipli di un numero

1. riconoscere la risolubilità di equazioni e disequazioni in casi particolari

Laboratorio di Programmazione Appunti sulla lezione 4: Divide et impera e algoritmi di ordinamento

Alberi binari. Ilaria Castelli A.A. 2009/2010. Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione

INDICAZIONI PER LA RICERCA DEGLI ASINTOTI VERTICALI

PROGRAMMA DI SCIENZE E TECNOLOGIE APPLICATE 2015/2016 Classe 2ª Sez. C Tecnologico

Cercare il percorso minimo Ant Colony Optimization

Robotica industriale. Richiami di statica del corpo rigido. Prof. Paolo Rocco

B-Tree. Struttura dati usata in applicazioni che necessitano di gestire insiemi di chiavi ordinate Una variante (B+-Tree) è diffusa in:

Corso di Calcolo Numerico

1 1+e ξ, (1) P A (ξ) = P B (ξ) = 1 1+e ξ (3) In figura (1) riportiamo l andamento delle probabilità P A (ξ) e P B (ξ). P A,P B

Alberi Bilanciati di Ricerca

Concorrenza perfetta (Frank - Capitolo 11)

Note sull implementazione in virgola fissa di filtri numerici

Regola del partitore di tensione

4) 8 g di idrogeno reagiscono esattamente con 64 g di ossigeno secondo la seguente reazione:

Collegamento generatori di tensione. Collegamento parallelo. Sia dato il sistema di figura 1: Fig. 1 -

La quantità chimica LA MOLE

L integrazione attraverso la conoscenza. La Repubblica, la Costituzione e l organizzazione dello Stato

Il calcolatore. Architettura di un calcolatore (Hardware)

Matematica e-learning - Corso Zero di Matematica. Gli Insiemi. Prof. Erasmo Modica A.A.

Algoritmi. Un tema centrale dell informatica è lo studio degli algoritmi.

Progettazione di Algoritmi

Linguaggio C: introduzione

1 IL LINGUAGGIO MATEMATICO

Uso di metodi statici. Walter Didimo

Parte V: Rilassamento Lagrangiano

Esercitazione n o 3 per il corso di Ricerca Operativa

Parte 6 Esercitazione sull accesso ai file

Giovanna Carnovale. October 18, Divisibilità e massimo comun divisore

GRAFICI DI FUNZIONI E TRASFORMAZIONI DEL PIANO

LA MEMORIA NEL CALCOLATORE

Minimo sottografo ricoprente. Minimo sottografo ricoprente. Minimo albero ricoprente. Minimo albero ricoprente

Compilazione rapporto di Audit in remoto

Calcolo Numerico (A.A ) Lab n. 12 Approssimazione

Esercizi Capitolo 6 - Alberi binari di ricerca

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi

Il pallone di Luca di Marcello Falco

Linguaggi e Grammatiche Liberi da Contesto

Diagrammi a blocchi 1

Laboratorio di Architettura degli Elaboratori

IEIM Esercitazione IX Ordinamento vettori e Struct Complesse. Alessandro A. Nacci -

Informatica B

Principi e Metodologie della Progettazione Meccanica

Distribuzioni campionarie. Antonello Maruotti

Bono Marco Spirali triangolari e quadrate 1. Spirali triangolari e quadrate

Potenze - Monomi - Polinomi - Operazioni tra Polinomi - Quadrato e Cubo del Binomio - Quadrato del Trinomio

Il programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria p. 1

Sito web Telefono (Carmine)

Introduzione alla tecnica di Programmazione Dinamica

VISITA IL SITO PER ALTRO MATERIALE E GUIDE

Codice Gray. (versione Marzo 2007)

Anno 2. Radicali algebrici e aritmetici: condizioni di esistenza

Corso di Laurea in Matematica per l Informatica e la Comunicazione Scientifica

I sistemi operativi (prima parte) Agostino Lorenzi I sistemi operativi - Atlas

Esame Laboratorio di Sistemi Operativi Cognome Nome Mat.

Esercizi sulle equazioni logaritmiche

Alberi di ricerca binari

Transcript:

Parallel sorting Algoritmi Avanzati Davide Lo Re

Indice Richiami Idea Descrizione Illustrazione Fase 1: Costruzione delle strutture dati Fase 1.1 Fase 1.2 Fase 2: Merge Analisi Costo Algoritmo di Cole 2 di 21

Se si vuole ottimizzare il mergesort, ci si deve concentrare sul passo di merge 3 di 21

Circuito Un comparatore è un oggetto che riceve in input due valori, e li ridà ordinati in output I 1 O 1 I 2 I 3 O 3 I 4 I 5 O 4 O 5 I 6 O 6 I 7 I 8 O 8 Con un comparatore è abbastanza semplice costruire un circuito in grado di fare il merge di due sequenze ordinate lunghe k O 2 O 7 4 di 21

Analisi circuito 1 1 1 1 2 2 4 Un circuito di merging implementa il mergesort in log k fasi di merging. La fase i-esima è costituita da un circuito di profondità log k i, per un totale di log 2 k. Il costo è quindi O(n log 2 n), che è subottimale 5 di 21

k-cover Dati due array A, B sia f una funzione che associa un elemento di B ad un elemento di A Diciamo che A è un k-cover di B se dati due elementi consecutivi x, y A, index B (f (x)) index B (f (y)) k 6 di 21

Idea chiave Fondiamo due array in questo modo: Definizione Sia o L, o R gli array contenenti i soli elementi in posizione dispari di L e di R Analogamente per e L, e R. Prima fondiamo o L, o R in OM e e L, e R in EM Poi fondiamo OM ed EM per ottenere M Osservazione Dato EM, è facile costruire OM 7 di 21

Idea chiave Supponiamo di aver già ordinato EM e di dover ordinare OM; di conoscere il predecessore in EM di ogni elemento in o L, o R (sia LEM, REM) e il predecessore in L, R di ogni elemento in EM (sia L ptr, R ptr ) EM è un 2-cover di L, R rispetto alla funzione predecessore 8 di 21

2-cover EM LEM e e R R L... l...... r r... R 1. e < l 2. e l (altrimenti sarebbe il predecessore) 3. r < e < l 4. r < e 5. r e l (altrimenti sarebbe il predecessore) 9 di 21

2-cover EM LEM e e R R L... l...... r r... R 1. e < l 2. e l (altrimenti sarebbe il predecessore) 3. r < e < l 4. r < e 5. r e l (altrimenti sarebbe il predecessore) 6. Ogni elemento dispari in R è il predecessore di un elemento in EM 9 di 21

2-cover EM LEM e e R R L... l...... r r... R 1. e < l 2. e l (altrimenti sarebbe il predecessore) 3. r < e < l 4. r < e 5. r e l (altrimenti sarebbe il predecessore) 6. Ogni elemento dispari in R è il predecessore di un elemento in EM (r, r ] 2 9 di 21

Questo vuol dire che possiamo fare un solo confronto per stabilire la posizione di e in OM. Bisogna però costruire queste strutture dati in modo efficiente 10 di 21

Fase 1.1: Predecessori da EM in L, R R 2 4 6 8 13 15 16 20 EM 3 4 8 10 14 15 19 20 L 1 3 9 10 12 14 18 19 Sia e EM, R. Poiché e viene da R, conosciamo il suo predecessore in R. (viceversa per L) 11 di 21

Fase 1.1: Predecessori da EM in L, R R 2 4 6 8 13 15 16 20 EM 3 4 8 10 14 15 19 20 L 1 3 9 10 12 14 18 19 Sia e EM, R. Poiché e viene da R, conosciamo il suo predecessore in R. Posizione: 2 ie R Ptr (e) 1 ( numero di elementi da cui è stato superato ) 11 di 21

Fase 1.1: Predecessori da EM in L, R R 2 4 6 8 13 15 16 20 EM 3 4 8 10 14 15 19 20 L 1 3 9 10 12 14 18 19 Sia e EM, R. Poiché e viene da R, conosciamo il suo predecessore in R. Posizione: 2 ie R Ptr (e) 1 Confrontando con r 2 stabiliamo il predecessore 11 di 21

Fase 1.1: Predecessori da EM in L, R R 2 4 6 8 13 15 16 20 EM 3 4 8 10 14 15 19 20 L 1 3 9 10 12 14 18 19 Sia e EM, R. Poiché e viene da R, conosciamo il suo predecessore in R. Posizione: 2 ie R Ptr (e) 1 Confrontando con r 2 stabiliamo il predecessore #proc = EM tempo parallelo costante 11 di 21

Fase 1.2: Predecessori da L, R in EM EM... e e e...... e e e... L... L(e) L(e ) L(e )...... L(e) m L(e ) L(e )... Siano e, e consecutivi in EM; allora (L Ptr (e), L Ptr (e )] comprende al massimo 2 elementi. Perché ogni elemento dispari in L è il predecessore di un elemento in EM 12 di 21

Fase 1.2: Predecessori da L, R in EM EM... e e e...... e e e... L... L(e) L(e ) L(e )...... L(e) m L(e ) L(e )... Siano e, e consecutivi in EM; allora (L Ptr (e), L Ptr (e )] comprende al massimo 2 elementi. In particolare, al più uno di indice dispari. Sia l. Impostiamo LEM Ptr (l) = e. In questo modo ogni elemento dispari in L viene impostato 12 di 21

Fase 1.2: Predecessori da L, R in EM EM... e e e...... e e e... L... L(e) L(e ) L(e )...... L(e) m L(e ) L(e )... Siano e, e consecutivi in EM; allora (L Ptr (e), L Ptr (e )] comprende al massimo 2 elementi. In particolare, al più uno di indice dispari. Sia l. Impostiamo LEM Ptr (l) = e. In questo modo ogni elemento dispari in L viene impostato Come prima, se abbiamo un processore per ogni elemento in EM possiamo eseguire in tempo parallelo costante 12 di 21

Fase 1.2: Esempio EM 3 4 8 10 14 15 19 20 L 1 3 9 10 12 14 18 19 max 2 13 di 21

Fase 1.2: Esempio EM 3 4 8 10 14 15 19 20 L 1 3 9 10 12 14 18 19 max 2 13 di 21

Fase 1.2: Esempio EM 3 4 8 10 14 15 19 20 L 1 3 9 10 12 14 18 19 13 di 21

Merge Sfruttando l idea vista all inizio possiamo conoscere la posizione di ogni elemento in OM in tempo parallelo costante Se abbiamo OM ed EM possiamo fonderli in modo efficiente OM 1 2 6 9 12 13 16 18 EM 3 4 8 10 14 15 19 20 In orizzontale e verticale le minorazioni sono ovvie; l unica indecisione è in obliquo. In tempo parallelo costante possiamo costruire M 14 di 21

Analisi dei tempi di esecuzione Fase 1 Fase 1.1: LPtr, R Ptr Fase 1.2: LEMPtr, REM Ptr Fase 2 15 di 21

Analisi dei tempi di esecuzione Fase 1 Fase 1.1: LPtr, R Ptr Fase 1.2: LEMPtr, REM Ptr Fase 2 O(1) 15 di 21

Analisi dei tempi di esecuzione Fase 1 Fase 1.1: LPtr, R Ptr Fase 1.2: LEMPtr, REM Ptr Fase 2 O(1) O(1) O(1) 15 di 21

Analisi dei tempi di esecuzione Fase 1 Fase 1.1: LPtr, R Ptr Fase 1.2: LEMPtr, REM Ptr Fase 2 O(1) O(1) O(1) O(1) 15 di 21

Analisi del merge Dato EM, il merging impiega tempo parallelo costante; EM va però ottenuto ricorsivamente. T(n) = O(1) + T(n/ 2) T(2) = 1 T(n) = log n 16 di 21

Algoritmo di ordinamento Si procede come nel mergesort, usando come merger l algoritmo appena descritto. Abbiamo quindi Θ(log n) fasi, tali che la fase i impiega tempo log n i O(log 2 n) 17 di 21

Costo Per il teorema di Brent, possiamo eseguire l algoritmo su n log n processori Costo: log 2 n n = n log n, che è l ottimo log n 18 di 21

Algoritmo di Cole Mantiene esplicitamente l albero della ricorsione Lavora in parallelo su più livelli, utilizzando dati parziali Fa uso di una proprietà 3-cover 19 di 21

Strutture dati v u w Vettore O (Origin), dove Ot (u)[e] = L se e in M t (u) viene dal sottoalbero T v Vettore E (Extract), Et+1 (u) contiene gli elementi di M t (u) che andranno in M t+1 (padre(u)) Vettore Bt (Before), per ogni elemento e M t (u) proveniente da T v, punta al predecessore in M t (u) di e proveniente dal sottoalbero T w Vettore At (After), per ogni elemento e M t (u) proveniente da T v, punta al successore in M t (u) di e proveniente dal sottoalbero T w NOTA: Le stesse definizioni di A t e B t, simmetricamente, si applicano se il nodo e proviene da T w. Tv Tw 20 di 21

Altre strutture v u w Tv Tw Vettore R_Ptr, per ogni elemento e Mt (u), se e proviene dal sottoalbero T w, punta al predecessore di e in E t+1 (v) Vettore L_Ptr, per ogni elemento e Mt (u), se e proviene dal sottoalbero T v, punta al predecessore di e in E t+1 (w) Vettore P_Ptr, per ogni elemento ev Et+1 (v) punta al predecessore di ev in M t (u) 21 di 21