Paralelização de algoritmos de reconstrução de imagens tomográficas usando unidades gráficas de processamento e processadores com múltiplos núcleos - Domínguez, Joel Sánchez (2016)
A obtenção de imagens usando tomografia computadorizada revolucionou o diagnóstico de doenças na medicina e é usada amplamente em diferentes áreas da pesquisa científica. Como parte do processo de obtenção das imagens tomográficas tridimensionais um conjunto de imagens são processadas por um algoritmo computacional, este processo é chamado de reconstrução de imagens tomográficas. Os algoritmos de reconstrução de imagens tomográficas agrupam-se em algoritmos analíticos e algoritmos iterativos. A execução destes algoritmos tem um alto custo computacional. O uso de processamento paralelo para acelerar os cálculos em algoritmos computacionais, usando as diferentes tecnologias disponíveis no mercado, tem mostrado sua utilidade para diminuir os tempos de execução. No presente trabalho é apresentada a paralelização de dois algoritmos para reconstrução de imagens tomográficas. O algoritmo de Feldkamp, David e Kress que é o algoritmo analítico mais usado comercialmente; e o algoritmo Expectation Maximization and Total Variation, algoritmo iterativo que se apresenta como uma opção aos algoritmos tradicionais. Para testar as versões paralelas dos algoritmos são usadas unidades gráficas de processamento e processadores com múltiplos núcleos, ambas, opções de hardware disponíveis rotineiramente nos computadores comerciais atuais. São introduzidos os conceitos básicos associados à tomografia computadorizada, processamento paralelo, GPUs, e processadores com múltiplos núcleos. As versões paralelas dos algoritmos são comparadas as suas versões seriais, mostrando em todos os casos menores tempos de processamento. Os maiores ganhos de velocidade conseguidos com as versões paralelas do algoritmo FDK foram de 17,85 usando GPUs e 10,62 usando processadores com múltiplos núcleos. Para o algoritmo EM+TV os maiores ganhos conseguidos foram de 8,97 usando GPUs e 4,39 usando processadores com múltiplos núcleos.