PROCESSAMENTO EM CUDA UTILIZANDO
PARALELIZAÇÃO DE DADOS PARA A BUSCA DE
SMALL RNAS (SRNAS)
Júlia Pacholok Veiga e Souza
PIBIC/Fundação Araucária
Lucas Ferrari de Oliveira
Partindo do trabalho realizado com a reescrita do
código do software sRNAScanner, observou-se
que a linguagem CUDA, apresentada em 2006
pela NVIDIA, poderia auxiliar na otimização do
programa de busca de small RNAs considerando a
presença de funções que trabalham sobre uma
grande quantidade de dados, realizando um
mesmo conjunto de operações para todos eles, e
caracterizam-se assim como candidatas à
paralelização de dados.
Para o desenvolvimento do projeto utilizou-se a
linguagem de programação CUDA, conhecimentos
sobre a biblioteca STL para C++, a biblioteca
Thrust para CUDA, além de conceitos sobre o
funcionamento das GPGPUs NVIDIA e estudos
sobre programação paralela.
1. KIRK, D. Programando para processadores paralelos: uma
abordagem prática à programação de GPU.
2. NVIDIA Corporation. An Introduction to the Thrust Parallel
Algorithms Library.
3. TARIQ, S. An Introduction to GPU Computing and CUDA
Architecture.
Com a linguagem CUDA, a programação paralela apresentase mais acessível ao programador. O leque de oportunidades
que se apresentam com a programação paralela é vasto,
permitindo ao programador explorar diferentes abordagens
para a resolução de problemas. Contudo, as aplicações que
podem aplicar os conceitos da programação paralela com
sucesso são relativamente específicas, de forma que os
trabalhos realizados não diferem muito entre si quando
analisamos simplesmente o código, desconsiderando a
finalidade da aplicação. Na reescrita do sRNAScanner para
utilizar a paralelização, obteve-se resultados positivos
considerando as possibilidades encontradas, comparando o
desempenho entre as abordagens ao delegar trechos de
código que contém estruturas de decisão tanto para a CPU
quanto para a GPU, analisando assim quais partes do
código são melhor tratadas pela programação paralela.
Partindo dos devidos estudos sobre o funcionamento das
GPGPUs e a plataforma CUDA, aliada à bibliotecas
especializadas, é possível adaptar programas para versões
paralelizadas mais eficientes que não exigirão conhecimentos
adicionais do usuário final e são de fácil aprendizado para o
programador.
Download

Júlia Pacholok Veiga e Souza PIBIC/Fundação Araucária