Ferramenta multithread de visualização interativa para auxílio na detecção do foco epileptogênico

Documentos relacionados
FERRAMENTA MULTITHREAD PARA RECONSTRUÇÃO VOLUMÉTRICA DE IMAGENS EM MEDICINA NUCLEAR PARA AUXÍLIO NA DETECÇÃO DE ZONAS EPILEPTOGÊNICAS Autor(es):

FERRAMENTA MULTITHREAD PARA RECONSTRUÇÃO VOLUMÉTRICA DE IMAGENS EM MEDICINA NUCLEAR PARA AUXÍLIO NA DETECÇÃO DE ZONAS EPILEPTOGÊNICAS

Aluno de Pós-Graduação em Engenharia de Software para Dispositivos Móveis pela UNINTER

DESENVOLVIMENTO DE UMA FERRAMENTA PARA RECONSTRUÇÃO TRIDIMENSIONAL DE IMAGENS DE SPECT CARDÍACO. BANDEIRA, Rafael de Leão¹, OLIVEIRA, Lucas Ferrari¹.

Mestrado em Engenharia Biomédica Proposta de trabalho na área de Aquisição e Processamento de Sinais e Imagem

UMA NOVA TÉCNICA PARA A CRIAÇÃO DE MAPAS POLARES PARA IMAGENS DE CINTILOGRAFIA MIOCÁRDICA

COMPARAÇÃO DE DESEMPENHO ENTRE IMPLEMENTAÇÕES DO ALGORITMO JOGO DA VIDA COM PTHREAD E OPEMMP 1

30/5/2011. Sistemas computacionais para processamento paralelo e distribuído

OpenMP: Variáveis de Ambiente

Os testes foram efetuados em um processador Intel i7 de 2.8 GHz com 12Gb de memória RAM utilizando uma Nvidia GeForce GTX 480.

UM ESTUDO COMPARATIVO DE DESEMPENHO UTILIZANDO PROGRAMAÇÃO SEQUENCIAL VS PARALELA APLICADO EM ALGORITMOS GENÉTICOS 1

Técnicas de Processamento Paralelo na Geração do Fractal de Mandelbrot

1 Introdução. I know because I must know. It's my purpose. It's the reason I'm here. (The Matrix) 1.1 Objetivos do trabalho

Visualização Volumétrica: da Teoria às Aplicações

Técnicas de Otimização em Visualização Volumétrica

AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS

Programação de Alto Desempenho - 2. Prof: Carla Osthoff

1.1 Descrição do problema A programação genética (PG) é uma meta-heurística utilizada para gerar programas de computadores, de modo que o computador

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

de petróleo. Um novo domínio chamado computação de propósito geral em processadores gráficos (GPGPU) surgiu quando os pipelines de gráficos de

Paralelização de Algoritmos de CFD em Clusters Multi-Core MC7. Escola de Verão Arquiteturas Multi-Core

Fundamentos da Informática Aula 03 - Sistemas operacionais: Software em segundo plano Exercícios Professor: Danilo Giacobo

USO DE PARALELISMO DE DADOS PARA MAIOR EFICIÊNCIA DE ALGORITMOS DE PROCESSAMENTO DE IMAGENS

Componente de aplicação. Figura 1 - Elementos funcionais de uma aplicação sendo executados de forma distribuída

Multiprogramação leve em arquiteturas multi-core

A Biologia na Era da Computação. Hugo Brandão Uchôa Laboratório de Sistemas Biomoleculares IBILCE-UNESP

Estudo Comparativo da Utilização de Filtros de Suavização para Reconstrução 3D de Superfícies

Paradigmas de Processamento Paralelo na Resolução do Fractal de Mandelbrot

Processamento de áudio em tempo real utilizando dispositivos não convencionais:

Paralelismo em Computadores com Tecnologia Multicore

DESENVOLVIMENTO DE UM ALGORITMO PARALELO PARA APLICAÇÃO EM CLUSTER DE COMPUTADORES

Um Algoritmo para a Visualização de um Terreno com Objetos

Informática I. Aula Aula 18-19/06/06 1

Implementação de uma biblioteca gráfica multiplataforma utilizando OpenGL e GLFW.

Ferramentas para Programação em Processadores Multi-Core

PARALELIZAÇÃO DE ALGORITMO DE INSPEÇÃO DE ROTAS UTILIZANDO PERMUTAÇÃO LEXICOGRÁFICA 1

6 Conclusão Contribuições da Dissertação

UM AMBIENTE GRÁFICO PARA VISUALIZAÇÃO DE IMAGENS TOMOGRÁFICAS OBTIDAS POR RESSONÂNCIA MAGNÉTICA

TÍTULO: PROGRAMAÇÃO PARALELA - UMA INTRODUÇÃO AO PARALELISMO COM A OPENMPI

Flávio André. Prof. Dalton Solano dos Reis

The future is parallel but it may not be easy

XV ESCOLA REGIONAL DE ALTO DESEMPENHO ERAD 2015

PROCESSADORES Unidade de Controle Unidade Aritmética e Lógica efetua memória de alta velocidade registradores Program Counter Instruction Register

Programação Concorrente

SISTEMAS OPERACIONAIS DE REDE

Organização de Computadores Sistema de entrada e saída (I/O) e computação paralela. Professor: Francisco Ary

SSC510 Arquitetura de Computadores. 6ª aula

Organização de Computadores Computação paralela; Sistema de entrada e saída (I/O); Suporte a Sistema operacional. Professor: Francisco Ary

Estudo de Pontes de Madeira com Tabuleiro Multicelular Protendido O PROGRAMA OTB

Implementação de algoritmos para consultas de segmentos em janelas

A IMPORTÂNCIA DE THREADS NO DESEMPENHO DE APLICAÇÕES

Bacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Filipo Mór

SIST706 Sistemas Distribuídos

Introdução aos Conceitos de Computação Paralela através da estimativa de Pi

Universidade Federal de Ouro Preto

João Manuel R. S. Tavares Jorge Gomes Barbosa. url:

Sis i te t mas a O perac a i c o i nai a s um p ouco c d a a h is i tó t ria i. a... SO His i t s ó t r ó ic i o

Arquitetura de Computadores. Processamento Paralelo

João Manuel R. S. Tavares. João Manuel R. S. Tavares Jorge Gomes Barbosa. url:

Introdução à Programação Paralela através de Padrões. Denise Stringhini Calebe Bianchini Luciano Silva

Paralelismo de dados. (execução de simultaneidade) Tipo de arquitetura paralela SIMD. SIMD (Single Instruction Multiple Data)

vértices dessas células. Exemplos de malhas estruturadas e não-estruturadas são apresentados na Figura 2.

SISTEMAS OPERACIONAIS

Departamento de Informática. Trabalho Acadêmico

Microarquiteturas Avançadas

Detecção automática de pontos para alinhamento de guia tomográfica de mandíbula

Um Calculador de Capacidade de Computação para Nós de Máquinas Virtuais LAM/MPI

IMPLEMENTAÇÃO E OTIMIZAÇÃO DE UMA BOUNDING INTERVAL HIERARCHY PARA UM RAYTRACER DE TEMPO REAL USANDO CUDA

SSC PROGRAMAÇÃO CONCORRENTE. Aula 03 Terminologia Geral de Computação Paralela Prof. Jó Ueyama

Sistemas Distribuídos

Frustum Culling Híbrido Utilizando CPU e GPU. Aluno: Eduardo Telles Carlos Orientador: Alberto Raposo Co-Orientador: Marcelo Gattass

Estrutura do Sistema Operacional

Computação e Imagens: PI, CG e Visualização. Computação Visual

Intel Thread Building Blocks (TBB)

Universidade Federal do Rio de Janeiro. Flávio Henrique Schuindt da Silva. Estimativa de Fluxo Ótico com o método de Lukas-Kanade

Otimização de Algoritmos de Processamento de Imagens Médicas Utilizando a Computação Paralela

Computação Paralela (CUDA)

Introdução Geral a Computação Gráfica. Universidade Católica de Pelotas Curso de Engenharia da Computação Disciplina de Computação Gráfica

Utilização das bibliotecas livres VTK e ITK no processamento de imagens médicas

Universidade Federal do Rio de Janeiro Informática DCC/IM. Arquitetura de Computadores II. Arquiteturas MIMD. Arquiteturas MIMD

Análise de imagens pulmonares. Paulo Cezar Pinto Carvalho IMPA

Programação Paralela e Distribuída

Conceitos avançados de programação. Módulo 8 Programação e Sistemas de Informação Gestão e Programação de Sistemas Informáticos

CAPÍTULO 7 CONCLUSÕES E RECOMENDAÇÕES

Faculdade de Computação 3 a Prova de Arquitetura e Organização de Computadores 2 Parte I Prof. Cláudio C. Rodrigues

ANÁLISE DE DESEMPENHO COM A PARALELIZAÇÃO DO CÁLCULO DE NÚMEROS PERFEITOS 1

Computadores e Programação (DCC/UFRJ)

Tecnólogo em Análise e Desenvolvimento de Sistemas. Sistemas Operacionais (SOP A2)

4 Resultados. Tabela 4.1: Funções implícitas de teste.

Apresentação Parcial 2: The Occlusion Spectrum for Volume Classification and Visualization

As principais contribuições do presente trabalho são as seguintes:

DISSERTAÇÃO DE MESTRADO

Comparação dos algoritmos sequencial e paralelo para contagem de palavras e contexto

Arquiteturas Paralelas

Gerência de Dispositivos. Adão de Melo Neto

Arquivos, Pastas e Extensões. Sistemas Operacionais. Conceitos básicos. Evolução

Conceitos sobre Computadores

OUTROS TRABALHOS EM:

Transcrição:

Ferramenta multithread de visualização interativa para auxílio na detecção do foco epileptogênico Cleber Roberto Milani 1, Gerson Geraldo H. Cavalheiro 1, Lucas Ferrari de Oliveira 1 1 Departamento de Informática Instituto de Física e Matemática Universidade Federal de Pelotas (UFPel) Pelotas RS Brazil {cmilani.ifm,gerson.cavalheiro,lucas.ferrari}@ufpel.edu.br Abstract. This paper presents a tool developed to assist pre-surgical evaluation of intractable epilepsy patients. The tool implements a volumetric visualization technique and an interactive manipulation interface. Due to inherent computational cost of application basis algorithm, the implementation employed multithreading programming techniques in multicore processors. Resumo. Este artigo apresenta uma ferramenta desenvolvida para auxiliar a avaliação pré-cirúrgica de pacientes com epilepsia intratável. A ferramenta implementa uma técnica de visualização volumétrica 3D e uma interface de manipulação interativa. Devido ao custo computacional inerente ao algoritmo base da aplicação, a implementação empregou técnicas de multiprogramação leve em processadores multi-core. 1. Introdução A epilepsia é uma enfermidade presente no cotidiano de milhões de pessoas em todo o mundo. As drogas antiepilépticas obtêm êxito no controle de cerca de 60 a 80% dos casos. Nos demais, faz-se necessária intervenção cirúrgica, a qual, por sua vez, requer uma avaliação prévia realizada com base em informações complementares de diferentes exames [Oliveira 2005]. Um processo tradicionalmente aplicado é a comparação visual, lado a lado, de imagens de SPECT (Single Photon Emission Computed Tomography, Tomografia Computadorizada por Emissão de Fóton Único) do paciente tomadas quanto este se encontra em crise com outras obtidas nos intervalos entre as crises. Essas imagens são chamadas, respectivamente, de imagens críticas e intercríticas. O objetivo nesse caso é verificar quais as partes do cérebro que entram em atividade especificamente durante uma crise epiléptica para, assim, identificar o foco epileptogênico. Entretanto, essa técnica, além de ser um processo laborioso e exaustivo, confere limitações à reprodutibilidade dos estudos, uma vez que depende dos conhecimentos e experiências prévios do investigador. Ao longo dos anos, diversas ferramentas computacionais vêm sendo desenvolvidas para automatizar e auxiliar a avaliação pré-cirúrgica. Um método bastante empregado na avaliação da epilepsia é o SISCOM (Subtraction Ictal SPECT Co-registered to MRI, Subtração de SPECT Crítico Co-registrado em imagens de Ressonância Magnética). Esse método permite detectar o foco epiléptico a partir da subtração de imagens funcionais de SPECT e localizá-lo anatomicamente no exame de Ressonância Magnética (RM) [O Brien et al. 1998]. Oliveira (2005) propôs um método que utiliza o SISCOM somado à fusão de imagens em três dimensões para produzir imagens alinhadas referentes aos cortes nas posições Coronal

(eixo X), Transversal ou Axial (eixo Y) e Sagital (eixo Z) do cérebro do paciente. A importância do alinhamento e a metodologia desenvolvida, bem como a origem das imagens, são discutidas em Oliveira (2005). Essa técnica representa avanços no sentido de que a visualização 3D (tridimensional) é de grande utilidade para a análise qualitativa durante a fase de tomada de decisão. Entretanto, no trabalho de Oliveira (2005) não foi desenvolvida uma ferramenta para a visualização e interação com as imagens resultantes do método por ele proposto. Já ferramentas comerciais com suporte à visualização de imagens médicas, como o VolView [VolView 2007], além de possuírem custo elevado, não permitem exibir o resultado final da fusão entre as imagens alinhadas. Dentro desse contexto, a ferramenta descrita neste artigo tem como objetivo prover uma aplicação de visualização 3D interativa para a fusão de imagens proposta por Oliveira (2005). Dessa forma, pode-se oferecer uma visualização do problema próxima da real, com auxílio de cores para destacar as zonas epileptogênicas. O restante deste artigo está organizado da seguinte forma: as seções 2 e 3 apresentam, respectivamente, os requisitos identificados para desenvolvimento do software proposto e a implementação da ferramenta propriamente dita. A Seção 4 descreve os resultados da avaliação da ferramenta. Na Seção 5 são colocadas as conclusões. 2. Requisitos de Projeto O primeiro requisito refere-se à visualização dos dados propriamente dita. Em geral, a aquisição dos dados volumétricos na medicina produz imagens compostas por fatias paralelas uniformemente espaçadas. O volume é então gerado através do empilhamento dessas fatias, mantendo o espaço original entre elas e mapeando os pixels em voxels. Isso é feito através da técnica de reconstrução volumétrica, a qual utiliza um algoritmo de Ray-tracing e permite a visualização 3D e interativa das imagens de maneira realística [Schroeder et al. 2002]. O algoritmo de reconstrução utilizado neste projeto foi o Ray-casting, uma versão simplificada do Ray-tracing implementada no VTK. Outro requisito identificado foi a elaboração de uma interface amigável para permitir ao usuário alterar, dinamicamente em tempo de execução, os parâmetros aplicados à reconstrução dos exames. Além disso, aplicações para visualização interativa requerem uma taxa de resposta e repetição de entre 10 e 20 frames (quadros) por segundo, pois somente dessa forma é possível uma navegação satisfatória [Robb 1999]. Entretanto, o atendimento desse requisito tem como empecilho o elevado custo computacional dos algoritmos de Ray-casting, cuja complexidade, em geral, é de O(n 3 ), onde n refere-se ao tamanho da entrada [Schroeder et al. 2002]. Por outro lado, Santos (1994) observa que, embora o custo computacional desse tipo de aplicação seja elevado, é também paralelizável e pode, portanto, ser explorado em arquiteturas paralelas com ganho de desempenho. Paiva et al. (1999) afirma que o alto custo computacional dos algoritmos de Ray-casting pode ser paralelizado, uma vez que os valores dos pixels são determinados através do lançamento de raios independentes entre si. Este aspecto é bastante interessante, considerando-se a crescente popularização de arquiteturas paralelas. De fato, a literatura apresenta propostas de soluções ao problema do custo computacional na visualização de imagens médicas utilizando recursos de programação paralela. Manssour et al. (2005) apresenta uma abordagem para visualização de imagens em arquiteturas paralelas do tipo aglomerado de computadores (clusters), utilizando para tal programação paralela através da biblioteca MPI (Message Passing Interface, Interface para Passagem de Mensagens). Em Rößler et al. (2006) é apresentado um framework para visualização de múltipos volumes que emprega o potencial de cálculo oferecido por arquiteturas dotadas de GPU (Graphics Processing Unit, Unidade de Processamento Gráfico).

Atualmente, observa-se que processadores multi-core vêm adquirindo status de commodity. Com isso, o custo de computadores pessoais paralelos passou a ser acessível não apenas a hospitais e clínicas, mas também a consultórios privados e mesmo a médicos. Em conseqüência, o desenvolvimento de programas paralelos voltados a esse público, ou desenvolvimento de versões paralelas de aplicações já existentes, é uma necessidade premente. Tem-se ainda o fato de que diversas bibliotecas de programação multithread estão disponíveis para facilitar a exploração do paralelismo em arquiteturas multi-core. Logo, explorar o paralelismo inerente ao algoritmo de Ray-casting, através da programação multithread em arquiteturas multi-core, apresenta-se como uma solução viável para o problema apresentado. Por fim, optou-se por desenvolver a ferramenta sob os princípios de software livre utilizando, para tal, bibliotecas e aplicações disponíveis da mesma forma. Essa decisão tem como objetivo oferecer uma solução de baixo custo e que possa ser modificada para atender necessidades locais, o que não é possível com softwares proprietários como o VolView, cuja licença custa US$ 2.500,00 e o código-fonte não é aberto. Outra característica observada na escolha dos padrões e bibliotecas foi a portabilidade. Dessa forma, a ferramenta proposta pôde ser desenvolvida compatível com os sistemas operacionais MS Windows XP, Linux e Mac OS X 10.4.10. 3. Ferramenta Desenvolvida A ferramenta foi escrita em linguagem C++ e o padrão POSIX Threads (pthreads) foi adotado como suporte à programação multithread. O padrão para formato de imagem utilizado é o Analyze 7.5 [Clinic 2007]. As bibliotecas VTK (Visualization ToolKIT) [VTK 2007] e FLTK (Fast Light ToolKIT) [FLTK 2007] foram empregadas para descrição dos algoritmos de visualização e construção da interface, respectivamente. Maiores detalhes a respeito da implementação podem ser obtidos em Milani (2007). A ferramenta desenvolvida oferece duas opções para visualização do foco epileptogênico - a primeira através dos volumes reconstruídos e outra, auxiliar, por meio de fatias bi-dimensionais. A janela principal da aplicação (Figura 1) subdivide-se em três cenas: a esquerda contendo a reconstrução da pele do paciente, a direita o foco epileptogênico e uma central que exibe o resultado do alinhamento das outras duas, ou seja, o foco epileptogênico localizado anatomicamente. A interação com os volumes pode ser individual ou de maneira simultânea, bastando para isso o usuário indicar no quadrante direito inferior quais volumes devem sofrer influência da interação. De maneira análoga, a visualização em fatias bidimensionais exibe três cenas, uma para o eixo Axial, outra para o Coronal e a última relativa ao eixo Sagital (Figura 2). A implementação do Ray-casting no VTK é feita através de um pipeline de visualização no qual são definidas diversas propriedades para a reconstrução das imagens. Dado que a quantidade de informações presentes em um exame é bastante grande, oferecer ao usuário a possibilidade de variar algumas dessas propriedades, em tempo de execução, pode facilitar a interpretação do mesmo. Isso porque, dessa forma, tem-se diferentes visões de uma mesma situação. As propriedades que apresentam essa característica, como iluminação e interpolação, por exemplo, foram disponibilizadas para manipulação através da interface com o usuário. Existem ainda parâmetros relacionados ao desempenho gerenciáveis em tempo de execução. O primeiro deles é o número de threads utilizado na reconstrução de cada cena, o segundo o número de frames por segundo desejado durante a interação. A alteração desses parâmetros ocorre através do menu desempenho. O fato de permitir a configuração do número de threads faz com que a ferramenta apresente escalabilidade de software. A alteração da taxa de frames por segundo desejada faz com que a aplicação, ao reconstruir a cena para interação, utilize níveis de detalhamento diferenciados, visando atender a taxa de quadros definida pelo

usuário. No momento em que a interação termina, a cena é novamente reconstruída com sua qualidade normal. O gerenciamento do nível de detalhes é realizado pelo próprio VTK. Figura 1. Janela principal da ferramenta Figura 2. Visualização em fatias bi-dimensionais dos exames alinhados 4. Avaliação e Resultados A avaliação da ferramenta considerou o ganho de desempenho obtido com o uso de recursos de threads e a qualidade das imagens reconstruídas. A qualidade dos resultados obtidos foi avaliada por meio de comparação entre as imagens geradas pela ferramenta desenvolvida e as apresentadas pelo software proprietário VolView. Realizou-se ainda a compilação da aplicação em sistemas operacionais variados para verificação da portabilidade. As configurações das arquiteturas utilizadas são apresentadas na Figura 3. Na execução dos testes, as arquiteturas de modelo 1 a 7 executavam o SO Windows XP e a arquitetura 8 rodava Mac OS X 10.4.10. A avaliação completa dos resultados encontra-se documentada em Milani (2007). Observe-se que, de modo a facilitar a comparação das execuções nos diferentes ambientes, todas as compilações foram realizadas sem nenhum parâmetro de otimização.

Figura 3. Configurações das arquiteturas utilizadas na fase de testes Tabela 1. Tempo médio gasto na reconstrução das três cenas em arquiteturas variadas, incluindo operações de E/S. Threads Tempo total de reconstrução em segundos J1 J2 J3 A1 A2 A3 A4 A5 A6 A7 A8 1 1 1 6,557 7,182 5,475 5,308 3,037 3,919 5,237 21,201 1 1 2 6,550 7,196 5,447 5,052 2,861 3,662 4,897 21,298 1 2 1 6,528 7,220 5,316 4,721 2,689 3,426 4,600 21,363 1 2 2 6,534 7,224 5,284 4,467 2,510 3,175 4,248 21,336 2 1 1 6,524 7,231 5,378 5,030 2,891 3,709 4,911 21,355 2 1 2 6,542 7,239 5,356 4,785 2,707 3,457 4,592 21,345 2 2 1 6,554 7,278 5,232 4,452 2,536 3,222 4,287 21,357 2 2 2 6,553 7,310 5,191 4,205 2,361 2,980 3,965 21,003 4 4 4 6,580 7,314 5,206 4,187 2,413 3,052 4,038 21,061 8 8 8 6,586 7,439 5,200 4,203 2,408 3,050 4,008 21,226 A Tabela 1 apresenta o tempo total gasto na reconstrução das três cenas com seus parâmetros default e variando o número de threads. O tempo apresentado é aquele que, efetivamente, o usuário teria de aguardar ao solicitar o carregamento dos exames para visualização na ferramenta, incluindo o consumido por operações de entrada e saída. Embora essas operações não sejam constantemente realizadas durante o processo interativo (como a

leitura dos arquivos, por exemplo), todas elas são obrigatoriamente executadas no momento da primeira reconstrução. As colunas J1, J2 e J3 representam o número de threads utilizados na reconstrução da fisionomia, exames alinhados e foco epileptogênico, respectivamente. As colunas A1, A2 etc., fazem referência às configurações de arquiteturas definidas no quadro da Figura 3. Nas arquiteturas multi-core, em geral, o resultado mais satisfatório foi obtido ao reconstruir as três cenas com 2 threads cada. Apenas a arquitetura A4 não seguiu o padrão, obtendo resultados melhores com o uso de 4 threads por janela. A redução aproximada do tempo de processamento nesse caso foi de 21% e o speedup de 1,27. Entretanto, observa-se que os ganhos com o uso de 2 threads por janela foram bastante semelhantes. A arquitetura A8 apresentou o desempenho menos satisfatório do grupo. Ao comparar o menor tempo de processador gasto por uma arquitetura dual-core (configuração 5 com 2 threads por cena) com o tempo médio necessário para a reconstrução na arquitetura single-core modelo 1, observou-se redução no tempo de processamento de 64%. Os resultados obtidos em computadores portáteis dual-core são também satisfatórios. Na configuração 6, a redução no tempo de processamento comparando-se a execução seqüencial com a multithread foi de 24% com speedup igual a 1.31 e eficiência de 65%. A arquitetura A7, por sua vez, apresentou redução de 25% no tempo de processamento, speedup de 1.32 e eficiência igual a 66%. Por fim, a comparação entre o desempenho das arquiteturas A1 e A2 indica que a presença de hardware para aceleração gráfica 3D não influencia o desempenho da ferramenta, uma vez que a implementação realizada não faz uso do mesmo. Logo, não há necessidade de hardware especial para execução da aplicação desenvolvida. 5. Conclusão A ferramenta desenvolvida apresentou resultados satisfatórios em relação à portabilidade, desempenho, escalabilidade e resultado visual gerado. A portabilidade de hardware foi comprovada com a execução da ferramenta em arquiteturas single-core e multi-core de fabricantes diversos. Nessa amostra encontram-se processadores que, além de divergir em relação ao número de núcleos, possuem diferentes conjuntos de instruções. Foram testados ainda processadores de 32 e 64 bits, logrou-se êxito nos dois casos. Já a portabilidade de software foi atestada ao compilar e executar a ferramenta com sucesso nos sistemas operacionais MS Windows XP, Debian Linux e Mac OS X 10.4.10 A exploração do paralelismo inerente ao algoritmo de Ray-casting, dividindo-o em fluxos independentes de execução, trouxe ganho de desempenho em arquiteturas dotadas de processadores com tecnologia Hyper Threading e processadores multi-core, enquanto naquelas com processador single-core a variação no tempo de execução foi desprezível. A taxa de frames por segundo colocada como adequada para aplicações interativas foi alcançada na ferramenta desenvolvida. Isso foi possível ao adicionar-se à exploração do paralelismo técnicas que permitem reconstruir o volume com nível menor de detalhamento durante a interação. Essa taxa pode ainda ser alterada em tempo de execução através da interface com o usuário. A escalabilidade, por sua vez, é também uma característica presente na ferramenta desenvolvida. Trata-se de escalabilidade de software. A abordagem aplicada para obter-se tal propriedade foi a de desenvolver a aplicação de maneira que se permita manipular, dinamicamente em tempo de execução, o número de threads. Logo, havendo aumento do número de processadores ou cores na arquitetura, pode-se configurar o software para explorá-los eficientemente através da divisão em um número maior de fluxos de execução. Por fim, a comparação com o software proprietário VolView permite dizer que o resultado final do projeto foi também satisfatório. Além de os exames reconstruídos apresentarem qualidade bastante próxima, puderam-se oferecer na aplicação desenvolvida as

principais funcionalidades do VolView, tais como a modificação em tempo de execução dos parâmetros da reconstrução e a visualização dos exames em forma de volumes 3D ou fatias 2D. O objetivo de desenvolver um método de visualização complementar ao SISCOM e à fusão de imagens em 3D foi, portanto, atingido de maneira satisfatória. Com a conclusão deste projeto, encontra-se disponível uma ferramenta computacional, distribuída como software livre, que implementa eficientemente essa nova abordagem de visualização para auxílio detecção do foco epileptogênico. Referências Clinic, M. (2007) ANALYZE TM 7.5 File Format, Biomedical Imaging Resource, http://www.mayo.edu/bir/pdf/analyze75.pdf, Acesso em 02 de jul. FLTK (2007) Fast Light Toolkit http://www.fltk.org, Acesso em 02 mai. Manssour, I., Fernandes, L., Freitas, C., Serra, G. e Nunes, T. (2005) High performance approach for inner structures visualisation in medical data, IJCAT, v. 22, p.23-33. Milani, C. (2007) Ferramenta multithread para reconstrução volumétrica de imagens em medicina nuclear para auxílio na detecção de zonas epileptogênicas. 129f. Trabalho acadêmico (Graduação em Ciência da Computação) Instituto de Física e Matemática, Universidade Federal de Pelotas, Pelotas. Oliveira, L. (2005) Fusão de Imagens 3D para Localização e Quantificação de Zona Epileptogênica. 151f. Tese (Doutorado em Clínica Médica) Faculdade de Medicina de Ribeirão Preto, Universidade de São Paulo, Ribeirão Preto. O' Brien, T., So, E., Mullan, B., Hause, M., Brinkmann, B., Bohnen, N., Hanson, D., Cascino, G., Jack, C. J. e Sharbrough, F. (1998) Subtraction Ictal SPECT coregistered to MRI improves clinical usefulness of SPECT in localizing the surgical seizure focus, Neurology, v.50, n.2, p.445-454. Paiva, A., Seixas, R. e Gattass, M. (1999) Introdução à Visualização Volumétrica. 107f. Trabalho acadêmico (Graduação em Ciência da Computação) - Departamento de Ciência da Computação, PUC-Rio, Rio de Janeiro. Robb, R. (1999) Visualization in biomedical computing, Parallel Computing, v.25, Issue 13-14, p.2067-2110. Rößler, F., Tejada, E., Fangmeier, T., Ertl, T. e Knauff, M. (2006) GPU-based Multi- Volume Rendering for the Visualization of Functional Brain Images, Proceedings of SimVis 2006, p.305-318. Santos, E. (1994) Avaliação do algoritmo de Ray Tracing em Multicomputadores, 181p. Dissertação (Mestrado) Escola Politécnica da Universidade de São Paulo, Departamento de Engenharia de Computação e Sistemas II, São Paulo. Schroeder, W., Martin, K., e Lorensen, B. (2002) The Visualization Toolkit - An Object Oriented Approach to 3D Graphics, Kitware Inc., 3ª ed. VolView (2007) Kitware VolView, Interactive and Intuitive Volume Visualization http://www.kitware.com/products/volview, Acesso em 10 de jun. VTK (2007) The Visualization Tool Kit http:// public.kitware.com/vtk, Acesso em 31 de jan.