Proposta
Tema
Implementação do Método de Integração Numérica Runge-Kutta em GPGPU para Aplicações Científicas
Resumo
O objetivo deste trabalho é a produção de implementações paralelizadas do método de integração numérica de Runge-Kutta aplicado a campos vetoriais tridimensionais a fim de obter seus resultados em "tempo real". Para tanto serão feitas implementações em GPGPU (computação de propósito geral na unidade de processamento gráfico) nas linguagens CUDA e OpenCL.
Estas implementações podem ser utilizadas por aplicações científicas como as que geram trajetórias a partir de campos vetoriais. Uma aplicação em especial é o traçado de trajetórias de fibras neuronais a partir de imagens de ressonância magnética. Como resultado final, esta funcionalidade será adicionada ao software para visualização de imagens médicas MedSquare.
Objetivos
- Algoritmos de paralelização do método de integração numérica de Runge-Kutta
- Calcular as trajetórias de fibras de substância branca cerebral utilizando ressonância magnética
Atividades já Realizadas
- Instalação prévia do MedSquare em Linux Ubuntu, com confecção de um script shell para futuras instalações
- Estudo dos métodos de integração numéricos Runge-Kutta de ordens 2 e 4
- Estudo dos métodos de interpolação "Nearest Neighbour" e de Interpolação Trilinear
- Implementações dos algoritmos estudados em C++, CUDA 4.2 e OpenCL 1.2
- Geração de campos vetoriais sintéticos para teste
- Início da implementação da interface de visualização dos resultados do método em Glut e OpenGL
Cronograma de Atividades
Janeiro | Fevereiro | Março | Abril | Maio | Junho |
---|---|---|---|---|---|
|
|
|
|
|
|
Julho | Agosto | Setembro | Outubro | Novembro | Dezembro |
|
|
|
|
|
|
Estrutura da Monografia
- Introdução
- Motivações
- Objetivos
- Desafios
- Conceitos e tecnologias estudadas
- Problemas de Valor Inicial
- Método de Integração Numérica Runge-Kutta
- Campo vetorial como discretização de EDOs
- Método de interpolação "Nearest Neighbour"
- Método de Interpolação Linear
- General-Purpose computing on Graphics Processing Units (GPGPU)
- Linguagem CUDA
- Linguagem OpenCL
- Atividades realizadas
- Implementações dos Métodos Runge-Kutta, Nearest Neighbour e Interpolação Linear em C++
- Implementações dos Métodos Runge-Kutta, Nearest Neighbour e Interpolação Linear em CUDA
- Implementações dos Métodos Runge-Kutta, Nearest Neighbour e Interpolação Linear em OpenCL
- Interface de Visualização dos Resultados em OpenGL
- Integração com o MedSquare através do VTK
- Resultados e produtos obtidos
- Implementação concorrentes dos Métodos Runge-Kutta, Nearest Neighbour e Interpolação Linear
- Integração com o MedSquare