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
  • Instalação do MedSquare
  • Estudo do método de integração numérica de Runge-Kutta
  • Implementação do método para duas dimensões e EDOs em C++ e CUDA
  • Implementação tridimensional para campos vetoriais do método em C++ e CUDA
  • Estudo e teste do método de interpolação "Nearest Neighbour"
  • Estudo e teste do método interpolação trilinear e geração de campos vetoriais para teste
  • Implementação em OpenCL do método
  • Interface de visualização dos resultados em Glut e OpenGL
  • Geração de campos vetoriais mais complexos para teste
  • Testes nestes campos
Julho Agosto Setembro Outubro Novembro Dezembro
  • Estudo sobre como integrar as implementações ao VTK
  • Elaboração dos capítulos já desenvolvidos da monografia
  • Integração das implementações ao MedSquare
  • Entrega da prévia da monografia
  • Elaboração dos capítulos restantes da monografia
  • Confecção do pôster e apresentação
  • Entrega da monografia

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
  • Conclusões
  • Bibliografia
  • Alunos

    Giancarlo Rigo
    Rafael Reggiani Manzo

    Supervisor

    Prof. Doutor Marcel P. Jackowski

    Links

    Instituto de Matemática e Estatística da Universidade de São Paulo (IME-USP)