an mpi approach to build philogenetics trees

40
Alessandro Della Rocca alexdellarocca AT alice.it Marco Fazzone fazzone.marco AT gmail.com Natasha Marmo natasha87_n AT libero.it Università degli Studi di Salerno Programmazione Concorrente e Parallela A.A. 2013/2014 An MPI approach to building philogenetics trees An MPI approach to building philogenetics trees Marmo Natasha Della Rocca Alessandro Fazzone Marco --------------------------- Introduzione Problema Dataset Soluzione adottata Soluzione sequenziale Soluzione parallela Metodologia di testing Metodologia adottata Grafici dei risultati Conclusioni

Upload: alessandro-della-rocca

Post on 19-Aug-2015

8 views

Category:

Technology


0 download

TRANSCRIPT

Alessandro Della Rocca alexdellarocca AT alice.it

Marco Fazzone fazzone.marco AT gmail.com

Natasha Marmo natasha87_n AT libero.it

Università degli Studi di Salerno Programmazione Concorrente e Parallela

A.A. 2013/2014

An MPI approach to

building philogenetics trees

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

Outline An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

1. Introduzione Problema iniziale Dataset

2. Soluzione adottata Soluzione sequenziale Soluzione parallela

o Algoritmo di allineamento Algoritmo Needleman-Wunsch

o Calcolo della distanza e algoritmo Algoritmo Damerau-Levenshtein Sequenziale vs. Parallelo

o Costruzione dell’albero output.txt Algortimo UPGMA

3. Metodologia di testing Metodologia adottata

o Script utilizzati Grafici dei risultati

4. Conclusioni

Introduzione Qual era il problema che ci eravamo

proposti…?

La crescente necessita di scoprire relazioni evolutive tra le

varie componenti biologiche e organismi in relazione alle

scoperte di nuove proteine che devono essere classificate e

inserite all’interno di famiglie proteiche.

Per calcolare relazioni evolutive e necessario confrontare

una sequenza di input con un numero elevato di sequenze,

a volte con il contenuto di un intero database.

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

Introduzione Quindi…

Sviluppare un sistema che permetta di cercare le

sequenze proteiche che mostrano uno score di

allineamento elevato rispetto ad una sequenza

input, all’interno di un database proteico di

dimensioni variabili.

Costruzione dell’albero filogenetico ad esse

relativo .

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

Descrizione funzionale del sistema proposto

La metodologia standard per la costruzione di alberi filogenetici di sequenze proteiche prevede: • scelta di sequenze di cui calcolare l’albero filogenetico, • ottenere uno score tramite un algoritmo di allineamento • Con metodi basati sulla distanza calcolare l’albero delle proteine considerate.

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

Dataset

• Gli algoritmi e le tecniche di allineamento e confronto di proteine si

basano su elaborazioni di stringhe.

• La maggior parte delle banche dati sono fruibili in formato FLAT-file:

Ogni entry e memorizzata in un file di testo generalmente strutturato, contenente le informazioni. (.FASTA)

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

Soluzione sequenziale Struct Allineamento

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

Definizione di una struct Allineamento che costituisce l’unità computazionale di base utilizzata nell’algoritmo.

Soluzione sequenziale Algoritmo di Needleman

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

Inizializzazione della

matrice

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

Soluzione sequenziale Algoritmo di Needleman (2)

Calcolo della matrice di scoring

Soluzione sequenziale Algoritmo di Damerau - Levenshtein

Calcolo della distanza di Damerau Levenshtein

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

Soluzione sequenziale Main

Operazioni di inizializzazione

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

Soluzione sequenziale Main(2)

Calcolo degli allineamenti

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

Soluzione sequenziale Main(3)

Calcolo della matrice di distanza

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

UPGMA

Basato su tre funzioni principali:

- cluster(): effettua la clusterizzazione delle sequenze secondo una misura basata sulla distanza genetica. Ad ogni passo crea un nuovo nodo facendo il join delle sequenze con distanza minore.

- reduceMatrix(): dopo la clusterizzazione ricalcola le distanze di tutte le sequenze rispetto al nodo appena calcolato e crea una nuova matrice di dimensioni inferiori.

- drawTree(): al termine della computazione disegna l’albero su standard output e lo scrive su file.

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

Soluzione Parallela Paradigma di Scatter

Master

P1 P2 P3 P4 Pn

…….

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

Soluzione Parallela MPI Strutture dati

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

Struttura dati per l’allineamento

Struttura dati per la distanza Damereau

Struttura dati per la distanza Damereau

Soluzione Parallela MPI Master

‘Serializzazione’ dei dati in input per lo scattering

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

Soluzione Parallela MPI Master (2)

Scatter/Gather ai processi figli per il

calcolo dell’allineamento.

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

Soluzione Parallela MPI Master (3)

Scatter/Gather ai processi figli per il calcolo

dell’allineamento.

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

Soluzione Parallela MPI Master (3)

Scatter/Gather ai processi

figli per il calcolo dell’allineamento.

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

Soluzione Parallela MPI Master (3)

Scatter/Gather ai processi

figli per il calcolo dell’allineamento.

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

Soluzione Parallela MPI Processo figlio

Il processo figlio riceve le sequenze da elaborare.

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

Soluzione Parallela MPI Processo figlio (2)

Esecuzione di Needlemann per tutte le sequenze della

share di computazione.

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

Soluzione Parallela MPI Processo figlio (3)

Esecuzione di Needlemann per tutte le sequenze della

share di computazione.

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

Soluzione Parallela MPI Processo figlio (4)

Sorting delle sequenze allineate e creazione della

struttura dati toSend da restituire nel gathering.

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

Soluzione Parallela MPI Processo figlio (5)

Invio dei risultati al processo padre.

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

Output Damerau phase An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

Output UPGMA An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

Metodologia di Testing Metodologia adottata

Tests effettuati variando i seguenti parametri: - # Nodi di computazione: 2, 4, 7

- Job Size: 1 GB, 4 GB, 8 GB

- # Sequenze per l’albero (howmany) = 10, 100

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

Risultati su 1 GB (howmany = 10)

0

2000

4000

6000

8000

10000

12000

1 macchina(2) 2 macchine(4) 4 macchine(8) 7 macchine(14)

Test su 1GB

TEMPO(sec)

• # sequences : 2231326 • # best sequences : 16469

2 macchine: < 1 second - 48 sec 4 macchine: < 1 second - 39 sec 7 macchine: 1 second - 34 sec

LEGENDA 1 macchina: 2 h 58 m 14 sec 2 macchine: 2 h 1 m 17 sec

4 macchine: 56 m 35 sec 7 macchine: 29 m 14 sec

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

0

5000

10000

15000

20000

25000

30000

2 macchine(4) 4 macchine(8) 7 macchine(14)

Test su 4GB

TEMPO(sec)

• # sequences : 8925304 • # best sequences : 62719

2 macchine: < 1 second - 49 sec 4 macchine: < 1 second - 38 sec 7 macchine: < 1 second - 36 sec

LEGENDA 2 macchine: 7 h 5 m 36 sec

4 macchine: 3 h 27 m 19 sec 7 macchine: 1 h 53 m 12 sec

Risultati su 4 GB (howmany = 10)

0

5000

10000

15000

20000

25000

4 macchine(8) 7 macchine(14)

Test su 8GB

TEMPO(sec)

• # sequence : 17850608 • # best sequence : 117289

LEGENDA 4 macchine: 6 h 42 m 36 sec 7 macchine: 3 h 28 m 22 sec

4 macchine: < 1 second - 45 sec 7 macchine: < 1 second - 40 sec

Risultati su 8 GB (howmany = 10)

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

0

2000

4000

6000

8000

10000

12000

1 macchina 2 macchine 4 macchine 7 macchine

Test su 1GB

TEMPO(sec)

• # sequences : 2231326 • # best sequences : 160469

2 macchine: 26 sec - 57 sec 4 macchine: 24 sec - 56 sec 7 macchine: 25sec - 52 sec

LEGENDA 1 macchina: 2 h 58 m 29 sec 2 macchine: 2 h 3 m 26 sec 4 macchine: 1 h 0 m 18 sec

7 macchine: 34 m 7 sec

Risultati su 1 GB (howmany = 100)

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

0

5000

10000

15000

20000

25000

30000

2 macchine 4 macchine 7 macchine

Test su 4GB

TEMPO(sec)

• # sequence : 8925304

• # best sequence : 620719

2 macchine: 23 sec - 55 sec 4 macchine: 26 sec - 51 sec 7 macchine: 24 sec - 49 sec

LEGENDA 2 macchine: 7 h 32 m 50 sec 4 macchine: 3 h 36 m 34sec 7 macchine: 2 h 5m 37 sec

Risultati su 4 GB (howmany = 100)

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

0

5000

10000

15000

20000

25000

4 macchine 7 macchine

Test su 8GB

TEMPO(sec)

• # sequence : 17850608 • # best sequence : 1170289

LEGENDA 4 macchine: 5 h 32 m 52 sec 7 macchine: 3 h 33 m 58 sec

Risultati su 8 GB (howmany = 100)

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

4 macchine: 27 sec - 48 sec 7 macchine: 26 sec - 46 sec

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

Grafici dei risultati

Processori Speedup Efficienza

4p 2,94 0,73

8p 6,32 0,78

14p 12,18 0,87

0

2

4

6

8

10

12

14

4p 8p 14p

Speedup 1 GB

Speedup 1 GB (10)

Speedup 1 GB (100)

Processori Speedup Efficienza

4p 2,88 0,72

8p 5,90 0,73

14p 10,40 0,74

Howmany = 10 Howmany = 100

Speedup(p) = T(1) / T(p) Efficienza = Speedup(p)/p

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

Grafici dei risultati

Processori Speedup Efficienza

4p 3,22 0,81

8p 6,88 0,86

14p 12,6 0,9

Tempo sequenziale stimato: 4* T(1GB)

Processori Speedup Efficienza

4p 3,14 0,78

8p 6,60 0,82

14p 11,24 0,81

0

2

4

6

8

10

12

14

4p 8p 14p

Speedup 4 gb

Speedup 4 gb (100)

Speedup 4g (10)

Howmany = 10 Howmany = 100

Speedup(p) = T(1) / T(p) Efficienza = Speedup(p)/p

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

Grafici dei risultati

Processori Speedup Efficienza

8p 7,08 0,89

14p 13,20 0,95

Tempo sequenziale stimato: 8* T(1GB)

0

2

4

6

8

10

12

14

8p 14p

Speedup 8GB (10)

Speedup 8GB (100)

Speedup 8GB (10)

Processori Speedup Efficienza

8p 7,04 0,87

14p 12,70 0,91

Howmany = 10 Howmany = 100

Speedup(p) = T(1) / T(p) Efficienza = Speedup(p)/p

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni

- La soluzione parallela implementata risulta essere scalabile

rispetto a quella sequenziale.

- Lo speedup cresce al crescere della taglia del job di computazione assegnato.

- Abbiamo scelto di non utilizzare la soluzione parallela per la fase di Damerau in quanto per un numero di sequenze basso la comunicazione interprocesso influisce molto.

- Aumentando il numero di sequenze che costituiscono l’albero, l’overhead della comunicazione interprocesso ha un impatto maggiore sul tempo totale facendo peggiorare lo speedup.

Conclusioni

Grazie per l’attenzione

An MPI approach to

building philogenetics trees

An MPI approach to

building

philogenetics trees

Marmo Natasha

Della Rocca Alessandro

Fazzone Marco --------------------------- Introduzione • Problema • Dataset

Soluzione adottata • Soluzione

sequenziale • Soluzione parallela

Metodologia di testing • Metodologia

adottata • Grafici dei risultati Conclusioni