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.