Reescrita de Código Usando Paralelismo de Dados
André Gehring Dias de Almeida
PIBIC/CNPQ
Lucas Ferrari de Oliveira
Devido a limitação de memoria RAM, softwares
mais antigos utilizavam muito o disco rígido. Com
o desenvolvimento tecnológico, o HD se tornou um
gargalo para as aplicações, sendo necessária uma
adaptação dos softwares para aproveitar melhor o
hardware disponível, utilizando multithreading
(multiprocessamento) e estruturas de dados
dinâmicas. O software otimizado foi o sRNAscanner,
que busca sequencias de sRNAs dentro de
genomas bacterianos.
1ª Etapa: compreensão do código e funcionamento
do software, detecção de funções mais custosas e
excesso de variáveis globais.
2ª Etapa: paralelização de funções e troca de
arquivos temporários (44) por estruturas de dados.
Primeira versão reescrita do código.
3ª Etapa: detecção e correção de erros no software
original, otimização de cálculos. Surgimento de
novos resultados e segunda versão reescrita do
código.
B. Schmidt (2010), Bioinformatics: High Performance
Parallel Computer Architectures (Embedded
Multi-Core System). CRC Press.
O maior entrave do software original era a leitura/escrita em
arquivos e conversão de tipos de dados. No software original
o resultado final ficava comprometido devido a vazamentos de
dados, que foram corrigidos. Os novos resultados encontrados
estão sendo analisados por especialistas da área de biologia.
Os resultados apresentados nos testes comprovam que a
utilização correta da hierarquia de memória, aproveitamento
máximo do hardware e boas práticas de programação,
interferem significativamente no tempo de execução e até nos
resultados obtidos. Pois, diminuem os possíveis erros nas
conversões e leitura/escrita de dados.
Download

André Gehring Dias de Almeida