23
Introdução Alinhamento Spliced Paralelismo Solucões Resultados e Análise Conclusão Soluções em GPU para o Problema 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

Soluções em GPU para o Problema do Alinhamento Spliced

  • 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