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

September 22, 2017 | Autor: Anisio Nolasco | Categoria: GPGPU (General Purpose GPU) Programming, CUDA Programming, GPU Computing
Share Embed


Descrição do Produto

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

Introdução

Alinhamento Spliced

Paralelismo

Solucões

Resultados e Análise

Conclusão

Motivação e Objetivos

GPU como plataforma de computação paralela Não usada somente para processamento gráfico Crescimento praticamente exponencial das bases de dados biológicas (ex.:GenBank) Desenvolver soluções em GPU para problema do alinhamento spliced Utilizar os recursos da GPU de forma 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











b1 b2 b3 b4 b5 β s AATGCATCCCAGTCCAATTAGTAGTTTAGTAGCCTGTGTCTAA

t ATGCATCCCCTGTCTAA 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âmica Calcula matriz de similaridade S:   S(i − 1, j − 1, k) + ω(s[i], t[j]) S(i − 1, j, k) + ω(s[i], ‘–’) S(i, j, k) = max  S(i, j − 1, k) + ω(‘–’, t[j])

, se i 6= first(k)

  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, k) = max  S(i, j − 1, k) + ω(‘–’, t[j])

, se i = first(k)

Similaridade do alinhamento ótimo: Sim(s, t, β) =

max

1≤ k ≤|β|

Anisio Vitorino Nolasco

S(last(k), n, k)

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 sequˆencia alvo 1

Caso i = first(k)

1

Caso i 6= first(k)

.. .

···

j −1 j

···

n

Sl

∀ ´exon bl tal que last(l) < f irst(k)

sequˆencia i > last(l) base .. .

1

···

j −1 j

···

n

Sk

1 m

.. . f irst(k) = i .. . last(k) .. . m

Anisio Vitorino Nolasco

Soluções em GPU para o Alinhamento Spliced

i−1 i

´exon bk

Introdução

Alinhamento Spliced

Paralelismo

Solucões

Resultados e Análise

Conclusão

Paralelismo Intra-éxon

sequˆencia alvo t

Sk

Células de uma anti-diagonal calculadas em paralelo Cada célula calculada por uma thread Tamanho da anti-diagonal limitado pelo comprimento do éxon

Anisio Vitorino Nolasco

´exon bk

Soluções em GPU para o Alinhamento Spliced

Introdução

Alinhamento Spliced

Paralelismo

Solucões

Resultados e Análise

Conclusão

Paralelismo Intra-éxon

sequˆencia alvo t

Sk

Células de uma anti-diagonal calculadas em paralelo Cada célula calculada por uma thread Tamanho da anti-diagonal limitado pelo comprimento do éxon

Anisio Vitorino Nolasco

´exon bk

Soluções em GPU para o Alinhamento Spliced

Introdução

Alinhamento Spliced

Paralelismo

Solucões

Resultados e Análise

Conclusão

Paralelismo Inter-éxon sequˆencia alvo t

Sk

Anti-diagonais de éxons com trecho em comum calculadas em paralelo Cada célula calculada por uma thread

´exon bk

Cada éxon calculado por um bloco

sequˆencia alvo t

Sl

´exon bl

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 sequˆencia alvo t

Sk

Anti-diagonais de éxons com trecho em comum calculadas em paralelo Cada célula calculada por uma thread

´exon bk

Cada éxon calculado por um bloco

sequˆencia alvo t

Sl

´exon bl

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 / NCBI Total de casos de teste: 1010 Informação

Mínimo

Médio

Máximo

Tamanho da sequência base Número de éxons de uma sequência base Tamanho dos éxons de uma sequência base Soma do tamanho dos éxons de uma sequência base Número total de sequências base

2848 2 1 442

42181,10 55,08 149,35 7711,73 240

575746 622 4778 71873

Número de sequências alvo por sequência base Tamanho da sequência alvo

1 189

4,20 1460,48

5 8652

Plataforma: GPU NVIDIA GeForce GTX 460 Host com Intel Core 2 Quad Processor de 2.83 GHz e 4GB RAM CUDA 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 16, 55% 15

Intra-éxon % de ´exons

11, 04% 10

5

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

0

C´elulas calculadas em paralelo (comprimento do ´exon)

% grupos de ´exons

60, 13%

40 21, 35%

20 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

Inter-éxon

60

Matrizes (correspondentes a ´exons) calculadas em paralelo 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 ×

|β| X

|bk |

k=1

Tempo de execução estimado de uma solução paralela intra-éxon tempo estimado par intra-éxon =

|β| X

(|bk | + n − 1)

k=1

Tempo de execução estimado de uma solução paralela intra- inter-éxon X tempo estimado par intra-éxon max |bk | + n − 1 inter-éxon = ∀G

Anisio Vitorino Nolasco

∀bk ∈G

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¸c˜ao estimado (escala log)

3×108 108

Solu¸ca˜o sequencial Solu¸c˜ao paralela intra-´exon Solu¸ca˜o paralela intra- e inter-´exon

107

106

105

104

103 100

200

300

400

500

600

700

800

900

1000

Caso de teste biol´ogico 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-éxon Kernel invocado uma vez para cada éxon Grid com um bloco de até 1024 threads, dependendo do comprimento da sequência alvo

Segundo acelerador: Explora paralelismo intra- e inter-éxon Kernel invocado uma vez para cada grupo de éxons independentes Grid 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á calculados Fase 2: Cálculo em paralelo das células de uma anti-diagonal Fase 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 alvo maiores 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 3 ead thr− 1 n ...

...

2 ead thr 1 ead thr 0 ead thr

Sl

∀ ´exon bl tal que last(l) < f irst(k)

S

2

1

0

ead thr 1 n− ...

...

ead thr

ead thr

ead thr

´exon bk

maxAnt

Sk

sequˆencia alvo t

thread |bk | − 1 ...

´exon bk thread 2 thread 1 thread 0

sequˆencia alvo 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

Organização das Estruturas de Dados Convencional:

Inclinada:

Cálculos de índices complexos Divergências

Padrão não uniforme de acessos Divergências 1

sequˆencia alvo t

Sk 1

´exon bk

3

6

10

14

18

2

5

9

13

17

21

4

8

12

16

20

23

7

11

15

19

22

2

3

4

5

6

7

8

9

12

13

14

15

16

17

18

24 20

22

23

24

Cálculos simples Padrão uniforme de acessos Sem divergências

1

10

11

19

Inclinada e alinhada à direita:

21

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:

Inclinada:

Cálculos de índices complexos Divergências

Padrão não uniforme de acessos Divergências 1

sequˆencia alvo t

Sk ´exon bk

1

3

6

10

14

18

2

5

9

13

17

21

4

8

12

16

20

23

7

11

15

19

22

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

24 19

20

22

23

24

Anisio Vitorino Nolasco

21

Inclinada e alinhada à direita: Cálculos simples Padrão uniforme de acessos Sem divergências Passo 1

thread thread thread thread 0 1 2 3

1

2

2

3

3

4

5

6

4

7

8

9

10

5

11

12

13

14

6

15

16

17

18

7

19

20

21

8

22

23

9

24

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) 104

Speedup 30

Implementa¸c˜ao sequencial Primeiro acelerador: paralelismo intra-´exon Segundo acelerador: paralelismo intra- e inter-´exon

Primeiro acelerador Segundo acelerador

25

103

20 102

15

10

10

5 1 100

200

300

400

500

600

700

800

900

1000

Caso de teste biol´ogico

100

200

300

400

Acelerador Primeiro Segundo

Anisio Vitorino Nolasco

500

600

700

800

Caso de teste biol´ogico

Speedup Médio Máximo 3,57 7,89 7,28 31,51

Soluções em GPU para o Alinhamento Spliced

900

1000

Introdução

Alinhamento Spliced

Paralelismo

Solucões

Resultados e Análise

Conclusão

CUPS e Escalabilidade Solução Implementação sequencial Primeiro acelerador Segundo acelerador

MCUPS médio 62,01 219,83 452,73

MCUPS máximo 83,90 506,71 2083,81

Caso de teste maior: gene IL1RAPL1 do Homo sapiens Solução Implementação sequencial Primeiro acelerador Segundo acelerador

Anisio Vitorino Nolasco

Tempo 357.506,67 ms 6.794,17 ms 3.934,57 ms

Speedup 1 52,62 90,86

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 do segundo acelerador em GPU

Tempo de execução de [Sarje & Aluru, 2009] no CellBE

103

••

•• •

• • •• •••• •• •• • ••• • • •••• • ••• • •• • •• • •• • • • ••• • • ••• •• • •• • •• ••• ••••• •••••• • •• • • ••• • • •• •• •• • • •• •• • • • ••• ••• •• •• • • •• • •••• ••••• • • • •• • •• •• • • •••• •••• • • • •• •• • • • •• • •• • • •• ••••• •••• •• • • ••• • • ••• ••• •• • •• • •• •• ••• •••••• • •• • •••• ••• •• • • • • •••••••• •• •• ••••• • •• ••• • • •• • ••••••• • • • •• •• •• • • • •• •• •• ••••• • •••• • •• •• ••••• •• ••• • •• • •• • • •• •• • • •• • •• • •• • •• • • •• • • • • • •• •• • •• • • ••• • • • ••••• • • • •••• •• • •••• ••••••• • •• • •• • •• ••• •• • ••• •••• • •••••••• • • •• •• •• • •••••••••••• • • • •••••••••••

102

••• • ••

10

• • •• • ••

• • •

••

••

• • •••• •• • ••• • • •





• ••

• • • •• • •••



••

• •• •



76

48

× 47 55 25

44

38

48

02

× 21

28

55

× 20 50 27

13

4× 16

08 53

43 20

3× 17

32

84

8 92

× 15

× 55 60

55

63

× 28

5



38

1

32

Tempo de execu¸c˜ao (ms) (escala log)

•• •

m × n (escala log)

Anisio Vitorino Nolasco

Soluções em GPU para o Alinhamento Spliced

Introdução

Alinhamento Spliced

Paralelismo

Solucões

Resultados e Análise

Conclusão

102

106

10

105

1 100

200

300

400

500

600

700

800

900

1000

Caso de teste biol´ogico

Estimativa da solu¸c˜ ao paralela intra-´exon Primeiro acelerador

106

103

102 105

10 104

1 100

106

200

300

400

500

600

700

800

900

1000

Estimativa da solu¸c˜ ao paralela intra- e inter-´exon Segundo acelerador

103

102 105

10 104

1 103 100

200

300

400

500

600

700

800

900

Caso de teste biol´ ogico

Anisio Vitorino Nolasco

Soluções em GPU para o Alinhamento Spliced

1000

Tempo de execu¸c˜ao (ms) (escala log) Tempo de execu¸c˜ao (ms) (escala log)

103 107

Tempo estimado (log scale)

104

Tempo de execu¸c˜ao (ms) (escala log)

Estimativa da solu¸c˜ ao sequencial Implementa¸c˜ ao sequencial 108

Tempo estimado (log scale)

Tempo estimado (log scale)

Precisão da Estimativa de Desempenho

Introdução

Alinhamento Spliced

Paralelismo

Solucões

Resultados e Análise

Conclusão

Conclusão Identificamos duas formas para explorar paralelismo no algoritmo de alinhamento spliced Desenvolvemos dois aceleradores em GPU para problema do alinhamento spliced Aceleradores obtiveram excelentes resultados de desempenho Aceleradores apresentaram escalabilidade do desempenho Propusemos uma organização para estruturas de dados dos aceleradores que otimiza sua eficiência Aceleradores são capazes de tratar entradas de dados maiores que no máximo de threads da plataforma Realizamos análise do potencial de paralelismo dos dados biológicos Propusemos um modelo preciso de estimativa de desempenho das soluções paralelas Resultados 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 similaridade correspondentes 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 de alinhamento spliced Estudar outros problemas similares ao alinhamento spliced, como por exemplo, o alinhamento spliced múltiplo, e analisar se soluções desenvolvidas podem ser estendidas para eles Anisio Vitorino Nolasco

Soluções em GPU para o Alinhamento Spliced

Lihat lebih banyak...

Comentários

Copyright © 2017 DADOSPDF Inc.