an mpi approach to build philogenetics trees
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