Upload
ufms
View
2
Download
0
Embed Size (px)
Citation preview
Introdução Alinhamento Spliced Paralelismo Solucões Resultados e Análise Conclusão
Soluções em GPU para oProblema do Alinhamento Spliced
Defesa de Dissertação de Mestrado
Anisio Vitorino Nolasco
Orientadora
Profa. Dra. Nahri Balesdent Moreano
Faculdade de Computação, UFMS
10 de outubro de 2014
Anisio Vitorino Nolasco Soluções em GPU para o Alinhamento Spliced
Introdução Alinhamento Spliced Paralelismo Solucões Resultados e Análise Conclusão
Motivação e Objetivos
GPU como plataforma decomputação paralela
Não usada somente paraprocessamento gráfico
Crescimento praticamenteexponencial das bases de dadosbiológicas (ex.:GenBank)
Desenvolver soluções em GPUpara problema do alinhamentospliced
Utilizar os recursos da GPU deforma eficiente
Avaliar desempenho das soluções
Anisio Vitorino Nolasco Soluções em GPU para o Alinhamento Spliced
Introdução Alinhamento Spliced Paralelismo Solucões Resultados e Análise Conclusão
Identificação de Genes e Alinhamento Spliced
AATGCATCCCAGTCCAATTAGTAGTTTAGTAGCCTGTGTCTAA
ATGCATCCCCTGTCTAA
s
t
β {b1 {b2 {b3 {b4 {b5
s: sequência base sendo investigada, onde m = |s|t: sequência alvo, com |t| = n, onde m > nβ: conjunto com todos os éxons candidatos,β = {b1, b2, ..., bk , bk+1, ..., b|β|}.
Problema: encontrar subconjunto de β de maior similaridade com t
Anisio Vitorino Nolasco Soluções em GPU para o Alinhamento Spliced
Introdução Alinhamento Spliced Paralelismo Solucões Resultados e Análise Conclusão
Algoritmo de Gelfand para o Alinhamento Spliced
Usa programação dinâmicaCalcula matriz de similaridade S :
S(i , j , k) = max
S(i − 1, j − 1, k) + ω(s[i ], t[j])S(i − 1, j , k) + ω(s[i ], ‘–’)S(i , j − 1, k) + ω(‘–’, t[j])
, se i 6= first(k)
S(i , j , k) = max
maxl∈β(first(k)) S(last(l), j − 1, l) + ω(s[i ], t[j])maxl∈β(first(k)) S(last(l), j , l) + ω(s[last(l)], ‘–’)S(i , j − 1, k) + ω(‘–’, t[j])
, se i = first(k)
Similaridade do alinhamento ótimo:
Sim(s, t, β) = max1≤ k ≤|β|
S(last(k), n, k)
Anisio Vitorino Nolasco Soluções em GPU para o Alinhamento Spliced
Introdução Alinhamento Spliced Paralelismo Solucões Resultados e Análise Conclusão
Dependências de Dados
Caso i = first(k)Caso i 6= first(k)
Sl1 · · · j−1 j · · · n
1
...
i > last(l)
...
m
sequencia
base
sequencia alvo
∀ exon bl tal que
last(l) < first(k)
Sk1 · · · j−1 j · · · n
1
...
first(k) = i
...
last(k)...m
exonbk
i−1
i
Anisio Vitorino Nolasco Soluções em GPU para o Alinhamento Spliced
Introdução Alinhamento Spliced Paralelismo Solucões Resultados e Análise Conclusão
Paralelismo Intra-éxon
Células de uma anti-diagonalcalculadas em paralelo
Cada célula calculada por uma thread
Tamanho da anti-diagonal limitadopelo comprimento do éxon
Sksequencia alvo t
exon bk
Anisio Vitorino Nolasco Soluções em GPU para o Alinhamento Spliced
Introdução Alinhamento Spliced Paralelismo Solucões Resultados e Análise Conclusão
Paralelismo Intra-éxon
Células de uma anti-diagonalcalculadas em paralelo
Cada célula calculada por uma thread
Tamanho da anti-diagonal limitadopelo comprimento do éxon
Sksequencia alvo t
exon bk
Anisio Vitorino Nolasco Soluções em GPU para o Alinhamento Spliced
Introdução Alinhamento Spliced Paralelismo Solucões Resultados e Análise Conclusão
Paralelismo Inter-éxon
Anti-diagonais de éxons com trecho emcomum calculadas em paralelo
Cada célula calculada por uma thread
Cada éxon calculado por um bloco
Sksequencia alvo t
exonbk
Slsequencia alvo t
exonbl
Anisio Vitorino Nolasco Soluções em GPU para o Alinhamento Spliced
Introdução Alinhamento Spliced Paralelismo Solucões Resultados e Análise Conclusão
Paralelismo Inter-éxon
Anti-diagonais de éxons com trecho emcomum calculadas em paralelo
Cada célula calculada por uma thread
Cada éxon calculado por um bloco
Sksequencia alvo t
exonbk
Slsequencia alvo t
exonbl
Anisio Vitorino Nolasco Soluções em GPU para o Alinhamento Spliced
Introdução Alinhamento Spliced Paralelismo Solucões Resultados e Análise Conclusão
Dados Biológicos e Plataforma
Dados biológicos: [Kishi, 2010]Projeto ENCODE, Base Homologene / NCBITotal de casos de teste: 1010
Informação Mínimo Médio MáximoTamanho da sequência base 2848 42181,10 575746Número de éxons de uma sequência base 2 55,08 622Tamanho dos éxons de uma sequência base 1 149,35 4778Soma do tamanho dos éxons de uma sequência base 442 7711,73 71873Número total de sequências base 240Número de sequências alvo por sequência base 1 4,20 5Tamanho da sequência alvo 189 1460,48 8652
Plataforma:GPU NVIDIA GeForce GTX 460Host com Intel Core 2 Quad Processor de 2.83 GHz e 4GB RAMCUDA Toolkit e SDK versão 5.0
Anisio Vitorino Nolasco Soluções em GPU para o Alinhamento Spliced
Introdução Alinhamento Spliced Paralelismo Solucões Resultados e Análise Conclusão
Potencial de Paralelismo
Intra-éxon
Inter-éxon
0
5
10
15
16, 55%
11, 04%
1, 31%
32 64 96 128
160
192
224
256
288
320
352
384
416
448
480
512
544
576
608
640
672
704
736
768
800
832
864
896
928
960
992
1024
Celulas calculadas em paralelo (comprimento do exon)
%d
eex
ons
0
20
40
6060, 13%
21, 35%
1 2 3 4 5 6 7 8 910 11 12 13 14 15 16 17 18 19 20 21 22
Matrizes (correspondentes a exons) calculadas em paralelo
%gr
up
osde
exon
s
Anisio Vitorino Nolasco Soluções em GPU para o Alinhamento Spliced
Introdução Alinhamento Spliced Paralelismo Solucões Resultados e Análise Conclusão
Estimativa de Desempenho
Tempo de execução estimado de uma solução sequencial
tempo estimado seq = n ×|β|∑k=1
|bk |
Tempo de execução estimado de uma solução paralela intra-éxon
tempo estimado par intra-éxon =
|β|∑k=1
(|bk |+ n − 1)
Tempo de execução estimado de uma solução paralela intra- inter-éxon
tempo estimado par intra-éxoninter-éxon =
∑∀G
max∀bk∈G
|bk |+ n − 1
Anisio Vitorino Nolasco Soluções em GPU para o Alinhamento Spliced
Introdução Alinhamento Spliced Paralelismo Solucões Resultados e Análise Conclusão
Estimativa de Desempenho
103
104
105
106
107
108
3×108
100 200 300 400 500 600 700 800 900 1000
Caso de teste biologico
Tem
po
de
exec
uca
oes
tim
ado
(esc
ala
log)
Solucao sequencial
Solucao paralela intra-exon
Solucao paralela intra- e inter-exon
Anisio Vitorino Nolasco Soluções em GPU para o Alinhamento Spliced
Introdução Alinhamento Spliced Paralelismo Solucões Resultados e Análise Conclusão
Aceleradores em GPU
Primeiro acelerador:Explora paralelismo intra-éxonKernel invocado uma vez para cada éxonGrid com um bloco de até 1024 threads,dependendo do comprimento da sequência alvo
Segundo acelerador:Explora paralelismo intra- e inter-éxonKernel invocado uma vez para cada grupo de éxons independentesGrid com vários blocos de até 1024 threads, dependendo ...
Aceleradores invocam mesmo kernel que realiza 3 fases:Fase 1: Busca em paralelo pelas melhores concatenações entre éxons jácalculadosFase 2: Cálculo em paralelo das células de uma anti-diagonalFase 3: Cópia em paralelo para memória global da última linha de Sk
Técnica de tiling:Aceleradores capazes de tratar entradas com éxons e sequência alvomaiores que no máximo de threads
Anisio Vitorino Nolasco Soluções em GPU para o Alinhamento Spliced
Introdução Alinhamento Spliced Paralelismo Solucões Resultados e Análise Conclusão
Kernel: Fases 1, 2 e 3Sl
Sk
∀ exon bl tal que
last(l) < first(k)
exon bk
maxAnt
sequencia alvo t
thread0
thread1
thread2
... ...
thread
n−
1
thread0
thread1
thread2
...
thread|bk| − 1
S
exon bk
sequencia alvo t
thread0
thread1
thread2
... ...
thread
n−
1
Anisio Vitorino Nolasco Soluções em GPU para o Alinhamento Spliced
Introdução Alinhamento Spliced Paralelismo Solucões Resultados e Análise Conclusão
Organização das Estruturas de Dados
Convencional:Cálculos de índicescomplexosDivergências
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Sk
sequencia alvo t
exonbk
Inclinada:Padrão não uniformede acessosDivergências
1
2 3
4 5 6
7 8 9 10
11 12 13 14
15 16 17 18
19 20 21
22 23
24
Inclinada e alinhadaà direita:Cálculos simplesPadrão uniforme deacessosSem divergências
1
2 3
4 5 6
7 8 9 10
11 12 13 14
15 16 17 18
19 20 21
22 23
24
Anisio Vitorino Nolasco Soluções em GPU para o Alinhamento Spliced
Introdução Alinhamento Spliced Paralelismo Solucões Resultados e Análise Conclusão
Organização das Estruturas de Dados
Convencional:Cálculos de índicescomplexosDivergências
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Sk
sequencia alvo t
exonbk
Inclinada:Padrão não uniformede acessosDivergências
1
2 3
4 5 6
7 8 9 10
11 12 13 14
15 16 17 18
19 20 21
22 23
24
Inclinada e alinhadaà direita:Cálculos simplesPadrão uniforme deacessosSem divergências
1
2 3
4 5 6
7 8 9 10
11 12 13 14
15 16 17 18
19 20 21
22 23
24
Passo
1
2
3
4
5
6
7
8
9
thread0
thread1
thread2
thread3
Anisio Vitorino Nolasco Soluções em GPU para o Alinhamento Spliced
Introdução Alinhamento Spliced Paralelismo Solucões Resultados e Análise Conclusão
Resultados dos Aceleradores em GPU
Tempo de execução (ms) (escala log)
1
10
102
103
104
100 200 300 400 500 600 700 800 900 1000Caso de teste biologico
Implementacao sequencial
Primeiro acelerador: paralelismo intra-exon
Segundo acelerador: paralelismo intra- e inter-exon
Speedup
5
10
15
20
25
30
100 200 300 400 500 600 700 800 900 1000Caso de teste biologico
Primeiro acelerador
Segundo acelerador
Acelerador SpeedupMédio Máximo
Primeiro 3,57 7,89Segundo 7,28 31,51
Anisio Vitorino Nolasco Soluções em GPU para o Alinhamento Spliced
Introdução Alinhamento Spliced Paralelismo Solucões Resultados e Análise Conclusão
CUPS e Escalabilidade
Solução MCUPS médio MCUPS máximoImplementação sequencial 62,01 83,90
Primeiro acelerador 219,83 506,71Segundo acelerador 452,73 2083,81
Caso de teste maior: gene IL1RAPL1 do Homo sapiens
Solução Tempo SpeedupImplementação sequencial 357.506,67 ms 1
Primeiro acelerador 6.794,17 ms 52,62Segundo acelerador 3.934,57 ms 90,86
Anisio Vitorino Nolasco Soluções em GPU para o Alinhamento Spliced
Introdução Alinhamento Spliced Paralelismo Solucões Resultados e Análise Conclusão
Comparação com Trabalho Relacionado
Tempo de execução dosegundo acelerador em GPU
1
10
102
103
3238×2
85
5563×5
58
6092×1
584
2043
4×16
32
5308
3×17
55
1327
50×2
028
3848
02×2
148
4425
55×4
776
•••••
••
••••••••
•
•
••••
••••
•
•••
••
•••••
•••••
•••••••••••••••
•••••••••••
•••••
•••••••••••
•
•
••
•
•
••
•••••
•
••
•••
••
•••
••••
•
••••••••••••••••••••••••••••••••
••
••
••
•
•
••
•
••••
••
••
•••••••
•••
•
••
•
••
•
•••
•
•••••
•
••••••
••
••
•
••
•
••••
•
•
•••
••
•
•••
••••
•
•
•
•
•
••
•
•••••
••
•
•
•
•
•
•
••••
•
••••••••
••
•••••
•
••
•
•••••
••••••
••
•
••••
•
•••
•
•••
•••
••
••••••
••
•
•••••
•
•
••••
•
••••
•
••••
•••
••••
•••••
••
•
••
•••••
•
•
••••
•
•
••
•
•••
•
•
••
•••••••
•••••
•
•••••
•
•
••
••••
•
•••••
••
•
•••••
•••
•
•
••••••
•
••••••••••••
••••
•
•
•••••
•
••••••••••••
••••
•••
•
••••
••
•••••
•
•
•••••••••
•
•
•
••••
••
•
•••••
•••••
••
•••••
•
•
•••
••
••
•••••
••
•
•
•
••••
•
•
•
•
•••••••••
•
••••
•
•
•
•
•••••
••
••••••
•
••••••
•
••••••
•
•
••
•••••
••••
•••••
••
•
•••••
••
•••••
••
••••
•
•••••
•••
••
•
••
•••
•
••••
•
•
••••
•
•
••••••••
•
•••
••••••
•
••••••••••
•
•••
••
•
••
•••••
•
•
••••••••
•
•
••
••
•
•••••
••••
•••••••
•••
•
••••••••
•
••
•
•
•
•••
•
••
•
•••
••
•
••
•
••••••
••
••
•
•••
•
••••
•
••
••
••••••••••
••••••••••
••••••
•
••••••
•
•
•
••
•
•••••••••
•
••
•
•
•••••
•
••••••
•••
•
••
•
•
•
•••
••
•••••
••••
•
•
•••••••
•
•
••••
•
••••••••••••••••••••••••••••••••••••
••••••• ••••••••••
•
••
••••••••••
••••••••••••••••
•
•••••
••••••
•
••••
•••
••
••
•••
••••••••
m× n (escala log)
Tem
po
de
exec
uca
o(m
s)(e
scal
alo
g)
Tempo de execução de[Sarje & Aluru, 2009] no CellBE
Anisio Vitorino Nolasco Soluções em GPU para o Alinhamento Spliced
Introdução Alinhamento Spliced Paralelismo Solucões Resultados e Análise Conclusão
Precisão da Estimativa de Desempenho
100 200 300 400 500 600 700 800 900 1000
105
106
107
108
1
10
102
103
104
Caso de teste biologico
Tem
po
de
exec
uca
o(m
s)(e
scala
log)
Tem
po
esti
mad
o(l
ogsc
ale
)
Estimativa da solucao sequencial
Implementacao sequencial
100 200 300 400 500 600 700 800 900 1000
104
105
106
1
10
102
103
Tem
po
de
exec
uca
o(m
s)(e
scala
log)
Tem
po
esti
mado
(log
scal
e)
Estimativa da solucao paralela intra-exon
Primeiro acelerador
100 200 300 400 500 600 700 800 900 1000
103
104
105
106
1
10
102
103
Caso de teste biologico
Tem
po
de
exec
uca
o(m
s)(e
scala
log)
Tem
po
esti
mado
(log
scal
e)
Estimativa da solucao paralela intra- e inter-exon
Segundo acelerador
Anisio Vitorino Nolasco Soluções em GPU para o Alinhamento Spliced
Introdução Alinhamento Spliced Paralelismo Solucões Resultados e Análise Conclusão
Conclusão
Identificamos duas formas para explorar paralelismo no algoritmo dealinhamento splicedDesenvolvemos dois aceleradores em GPU para problema doalinhamento splicedAceleradores obtiveram excelentes resultados de desempenhoAceleradores apresentaram escalabilidade do desempenhoPropusemos uma organização para estruturas de dados dosaceleradores que otimiza sua eficiênciaAceleradores são capazes de tratar entradas de dados maiores que no
máximo de threads da plataformaRealizamos análise do potencial de paralelismo dos dados biológicosPropusemos um modelo preciso de estimativa de desempenho dassoluções paralelasResultados divulgados em artigo aceito no ICPADS 2014
Anisio Vitorino Nolasco Soluções em GPU para o Alinhamento Spliced
Introdução Alinhamento Spliced Paralelismo Solucões Resultados e Análise Conclusão
Trabalhos Futuros
Otimizar procura dos valores máximos nas matrizes de similaridadecorrespondentes aos éxons anteriores
Otimizar cálculo da similaridade do alinhamento spliced ótimo
Experimentar otimizações no uso da memória compartilhada
Diferentes implementações da técnica de tiling
Encontrar alinhamento ótimo propriamente dito(por exemplo, adaptando método de espaço linear)
Analisar código PTX gerado para garantir que compilador não estágerando código com alguma ineficiência
Investigar outras formas de exploração de paralelismo no algoritmo dealinhamento spliced
Estudar outros problemas similares ao alinhamento spliced, como porexemplo, o alinhamento spliced múltiplo, e analisar se soluçõesdesenvolvidas podem ser estendidas para eles
Anisio Vitorino Nolasco Soluções em GPU para o Alinhamento Spliced