1. 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
2. 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
3. Introduzione
Qual era il problema che ci eravamo
proposti…?
La crescente necessità 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 è 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
4. 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
5. 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
6. 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 è 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
7. 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.
8. 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
9. 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
10. 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
11. 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
12. 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
13. 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
14. 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
15. 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
16. 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
17. 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
18. 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
19. 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
20. 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
21. 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
22. 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
23. 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
24. 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
25. 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
26. 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
27. 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
28. 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
29. 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
30. 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
31. 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)
32. 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
33. 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
34. 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
35. 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
37. 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
38. 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
39. 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
40. 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