Otimização do Processamento de Imagens Médicas: Uma Abordagem Utilizando Java

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

Disc. Scientia. Série: Ciências Naturais e Tecnológicas, S. Maria, v. 7, n. 1, p ,

Uso da Computação Paralela Distribuída para Melhoria no Tempo de Processamento de Imagens Médicas

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

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

AVALIAÇÃO QUALITATIVA DE DETECÇÃO DE BORDAS EM IMAGENS DE RADIOGRAFIA PERIAPICAIS

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

Processamento de Imagem. Prof. MSc. André Yoshimi Kusumoto

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

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

OpenMP: Variáveis de Ambiente

Complexidade de Tempo e Espaço

MÉTODOS QUANTITATIVOS PARA CIÊNCIA DA COMPUTAÇÃO EXPERIMENTAL

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

Processamento Digital de Imagens

Processamento de Imagem. Filtragem no Domínio Espacial Professora Sheila Cáceres

Processamento de Imagens Marcia A. S. Bissaco

Apresentação. Paralelização. do Processo de. de Documentos XSL-FO. Introdução Objetivos. Renderização

Reconhecimento de texturas utilizando padrão binário local e classificador knn.

T4.1 Processamento de Imagem

SISTEMAS OPERACIONAIS

Capítulo III Processamento de Imagem

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

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

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

IDENTIFICAÇÃO DE MARCADORES DE PAVIMENTAÇÃO NA ORIENTAÇÃO DE CEGOS. André Zuconelli 1 ; Manassés Ribeiro 2

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

Universidade Federal de Ouro Preto

Operações Pontuais. 1 operando. 2 operandos. Processamento e Análise de Imagem - A. J. Padilha - v ac

Paralelização do Método de Jacobi em Memória Compartilhada 1

Computaçã. Visão Geral. Sistema Gráfico. Computação Gráfica. Pixels. Sistema Gráfico e o Frame Buffer. Introdução à Computação Gráfica

Um estudo sobre consumo energético na indexação de conteúdo visual com síntese em alto nível usando hardware reconfigurável

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

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

Introdução 12 que inuenciam a execução do sistema. As informações necessárias para o diagnóstico de tais problemas podem ser obtidas através da instru

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

Processamento de Imagem. Prof. MSc. André Yoshimi Kusumoto

Implementação de códigos no Matlab para detecção de falhas em cordão de soldas. Adailton Turczen de Melo Andrine M. Varela da Cruz Wallace Griz Ayres

Comparação entre Abordagens de Paralelização para o Problema do Jogo da Vida

Avaliação de Desempenho de SGBDs de Código Aberto para Construção de Bases de Imagens Médicas

Realce de imagens parte 2: ltragem espacial SCC5830/0251 Processamento de Imagens

PRISCILA TIEMI MAEDA SAITO OTIMIZAÇÃO DO PROCESSAMENTO DE IMAGENS MÉDICAS UTILIZANDO A COMPUTAÇÃO PARALELA

MouseCam: aplicação de controle do mouse via câmera

T4 Processamento de Imagem

Diego Martin Mancini Orientador: Prof. Paulo A. V. de Miranda Instituto de Matemática e Estatística Universidade de São Paulo

EXTRAÇÃO DE BORDAS EM IMAGEM DE ALTA RESOLUÇÃO UTILIZANDO TÉCNICAS DE PROCESSAMENTO DE IMAGEM

TELEVISÃO DIGITAL LEEC 2006/2007

QEEF-G: Execução Paralela Adaptativa de Consultas Iterativas

[2CTA121] Processamento de Imagens em Alimentos: Conceitos e Aplicações

FILTRAGEM DE IMAGEM NO DOMÍNIO ESPACIAL (Operações aritméticas orientadas à vizinhança)

COMPUTAÇÃO PARALELA E DISTRIBUÍDA

Modelo de Programação Paralela

INFORMÁTICA: Informação automática

Estrutura de um computador digital. Gustavo Queiroz Fernandes

Organização de Computadores Sistema de Interconexão. Professor: Francisco Ary

APLICAÇÃO DE TÉCNICAS DE PROCESSAMENTO DE IMAGENS DIGITAIS EM IMAGENS GERADAS POR ULTRA-SOM

Definindo melhor alguns conceitos

SISTEMAS OPERACIONAIS DE REDE

Implementação de um escalonador de processos em GPU

Programação Concorrente

Processamento de Imagens Termais Aplicado à Navegação Autônoma. Wanessa da Silva

ENGENHARIA DE SISTEMAS MICROPROCESSADOS

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

UNIVERSIDADE ESTADUAL DO OESTE DO PARANÁ UNIOESTE CAMPUS UNIVERSITÁRIO DE CASCAVEL CURSO DE CIÊNCIA DA COMPUTAÇÃO LISTA DE EXERCÍCIOS

Preliminares. Profa. Sheila Morais de Almeida. agosto

speedup aprimorado aprimorado Fração aprimorada speedup aprimorado Fração aprimorada speedup aprimorado Tempo original Fração aprimorada aprimorado

TE073 PDS II Programa de Graduação em Engenharia Elétrica

PROCESSAMENTO DIGITAL DE IMAGENS

Aluno do Curso de Ciência da Computação UNIJUÍ, 3

Orientação de Bordas em Imagens Digitais: Abordagem por Análise de Vizinhança Local

Resultados Obtidos 49

Visão Computacional. Alessandro L. Koerich. Programa de Pós-Graduação em Engenharia Elétrica Universidade Federal do Paraná (UFPR)

Fundamentos de Processamento Gráfico. Aula 3. Introdução ao Processamento de Imagens. Profa. Fátima Nunes

Arquitecturas Paralelas I Computação Paralela em Larga Escala LESI - 4º Ano. Desenvolvimento de Aplicações Paralelas

Processamento de Imagens Digitais

Algoritmos Genéticos em Ambientes Paralelos

CONVOLUCIONADOR DE IMAGENS. Maria Fernanda Eppinghaus Belford Roxo

Mineração de Dados com Big Data. Prof. Fabrício Olivetti de França Universidade Federal do ABC

"Análise de Extratores de Característica para Reconhecimento de Face"

BALANCEAMENTO DE CARGA EM SISTEMAS MULTIPROCESSADORES UTILIZANDO O MODELO DE PROGRAMAÇÃO CHARM++ 1

Sistemas Distribuídos e Paralelos

SSC PROGRAMAÇÃO CONCORRENTE. Aula 06 Modelos de Programação Prof. Jó Ueyama e Julio Cezar Estrella

SSC510 Arquitetura de Computadores. 6ª aula

4 Testes e experimentos realizados 4.1. Implementação e banco de dados

Desenvolvimento de um Middleware Distribuído para Ordenação de Mensagens Segundo os Algoritmos FIFO, Causal e Total

Usando MLP para filtrar imagens

Resumo parcial da Tese de Doutorado. Um modelo de Sistema de Gestão do Conhecimento para grupos de pesquisa e desenvolvimento.

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

Universidade Estadual de Maringá/Departamento de Informática Maringá, PR. Ciências Exatas e da Terra / Metodologia e Técnicas da Computação.

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

PROGRAMAÇÃO PARALELA USANDO MPI

FERRAMENTA DIDÁTICA PARA O ENSINO DO DESENVOLVIMENTO ÓSSEO UTILIZANDO TÉCNICAS DE REALIDADE VIRTUAL

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

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Introdução OpenMP. Nielsen Castelo Damasceno

API para transformação de imagem em cartum utilizando plataforma ios. Acadêmico Christian Hess Orientador Dalton Solano dos Reis

Video Quality Assessment in Java

ENTENDENDO O FRAMEWORK FORK/JOIN DE JAVA

Os efeitos do paralelismo e relações de thesaurus em uma ferramenta de busca em bases textuais

Transcrição:

Otimização do Processamento de Imagens Médicas: Uma Abordagem Utilizando Java Priscila T. M. Saito, Ricardo J. Sabatine, Fátima L. S. Nunes, Kalinka R. L. Jaquie CasteloBranco Univem Centro Universitário Eurípides de Marília Av. Hygino Muzzi Filho 529, CEP 1759-91, Marília, SP {psaito, sabatine, fatima, kalinka}@univem.edu.br Abstract This paper aims at demonstrating the use of parallel distributed computing to improve the execution time of algorithms used to the medical image processing. Image processing techniques were implemented in the sequential and parallel way by using the program language Java and the parallel virtual libraries mpijava and JPVM. Smoothing and edge detection algorithms were implemented in the special domain, using different size of masks. After the implementation, it was possible to make a comparison between the sequential and parallel application, that permitted to evaluate and to demonstrate the gain using distributed parallel computing. 1. Introdução O processamento de imagens é amplamente utilizado em muitas aplicações. Essa área de conhecimento exige intenso poder computacional, visto que as imagens apresentam, em sua grande maioria, tamanho elevado, constituindo grande volume de dados a serem processados. Quando o contexto trata de imagens médicas, esta questão é ainda mais crítica, uma vez que aplicações médicas, em geral, requerem curto tempo de resposta e não se pode permitir armazenamento com perdas de dados. O tamanho elevado das imagens, aliado à necessidade de aplicação de algoritmos complexos, aumenta o tempo de processamento dessas imagens, prejudicando a avaliação das mesmas [6]. A necessidade de alto desempenho e alto poder computacional para o processamento desse tipo de imagem pode ser atendida por meio do uso de sistemas distribuídos e de bibliotecas de passagem de mensagens, que viabilizam a computação paralela distribuída. 2. Computação Paralela Distribuída O aumento da utilização de sistemas computacionais distribuídos, associado aos conceitos de computação paralela, permite que tarefas possam ser realizadas explorando maior potência computacional com relevante redução dos custos. Apesar de possuir um meio de comunicação mais lento quando comparada à comunicação em uma máquina massivamente paralela, fator que degrada o desempenho, a computação paralela distribuída tem sido utilizada com sucesso para paralelizar aplicações que possuam pouca necessidade de comunicação entre os processos. Existem diversos ambientes de passagens de mensagens especializados em fornecer recursos necessários à programação paralela, entre eles o MPI (Message Passing Interface) e o PVM (Parallel Virtual Machine). Com o surgimento da linguagem Java, inúmeras propostas foram apresentadas para a utilização dessas bibliotecas nessa linguagem podendo-se citar o mpijava [1] e o JPVM (Java Parallel Virtual Machine) [3], que constituem os ambientes de passagem de mensagens utilizados neste trabalho. A escolha desses ambientes para o processamento paralelo dos algoritmos vem em decorrência do uso da linguagem Java que contém fatores como portabilidade, permitindo a independência de plataforma, simplicidade, clareza nos códigos e a existência de bibliotecas especializadas que possibilitam o reúso de código, facilitando a construção de aplicações nos mais diversos domínios, como é o caso do processamento de imagens. 3. Processamento de Imagens Médicas A finalidade das imagens médicas é auxiliar na composição do diagnóstico de anomalias e fornecer material para acompanhamento de terapias [6]. Técnicas de processamento de imagens são aplicadas com o objetivo de melhorá-las e extrair informações úteis aos diagnósticos. Existem inúmeros métodos de processamento de imagens. A escolha de procedimentos a serem aplicados depende do objetivo que se deseja em relação a uma determinada categoria de imagem.

Para este trabalho, inicialmente foram escolhidas técnicas de suavização e de detecção de bordas, largamente utilizadas nos sistemas de auxílio ao diagnóstico, a fim de verificar a relação custo/benefício decorrente da aplicação da computação paralela distribuída. 3.1. Suavização Filtros de suavização são utilizados em uma etapa de pré-processamento para a redução de ruídos e para a remoção de pequenos detalhes de uma imagem antes da extração de objetos [4]. Entre as técnicas mais comuns de suavização estão os filtros de média e mediana. A filtragem mediana usada neste artigo [4], consiste em substituir o valor de um determinado pixel pelo valor mediano da sua vizinhança que é o valor central obtido quando se ordena os pixels da vizinhança. Na Figura 1 são apresentados exemplos da aplicação da filtragem mediana em imagens médicas. (a) (b) (c) (d) Figura 1 - Exemplos de suavização utilizando o filtro mediana. (a) imagem mamográfica original; imagem suavizada (b) máscara 3x3; (c) máscara 5x5; (d) máscara 7x7. 3.2. Detecção de Bordas A detecção de bordas é outro exemplo de algoritmo que usa operações baseadas em vizinhança. Representar uma imagem por meio de suas bordas pode ser vantajoso, para muitos esquemas na área médica, visto que as bordas fornecem informações úteis para a composição de diagnósticos. Para avaliação neste artigo foi utilizado o algoritmo de detecção de bordas fazendo uso dos operadores de Sobel modificado [4]. Estes calculam o valor absoluto aproximado do gradiente em cada ponto da imagem analisada, deixando em maior evidência as áreas cuja freqüência espacial possui um valor alto em relação à vizinhança e que correspondem às bordas da imagem. A Figura 2 apresenta exemplos do resultado obtido com a aplicação desses operadores. (a) (b) (c) Figura 2 Exemplos de detecção de bordas pelos operadores de Sobel modificado com diferentes tamanhos de máscaras. (a) imagem original; (b) máscara 9x9; (c) 11x11. 4. Um Modelo de Paralelismo para o Processamento de Imagens O requisito básico de um sistema de processamento paralelo de imagens consiste em uma infra-estrutura que permita executar de forma eficiente quaisquer algoritmos de nível baixo, médio ou alto. Essa infra-estrutura é composta essencialmente de funções de comunicação e distribuição de dados adequados ao processamento de imagens [2]. Os filtros executados no domínio espacial, que manipulam diretamente os pixels que compõem a imagem, são os mais utilizados devido à facilidade de implementação, porém exigem alto poder de processamento, visto que as imagens constituem, na maioria das vezes, matrizes enormes de pontos a serem considerados. É neste contexto que as técnicas de processamento de imagens e, em especial, aquelas desenvolvidas especificamente para aplicação em imagens médicas, podem se beneficiar dos conceitos de paralelização. A importância do paralelismo é ainda mais realçada visto que esta classe de imagens, quando destinada ao diagnóstico, não pode permitir armazenamento com perdas de dados. Além disso, muitas vezes, exigem precisão na sua aquisição gerando um volume ainda maior de dados. Uma proposta de paralelização eficiente é a divisão da imagem em blocos distribuídos pelos processadores, de forma a processá-los ao mesmo tempo. Definir o tipo de paralelismo que melhor se adapta ao processamento proposto é uma tarefa que permite a obtenção de melhor desempenho. No caso deste trabalho o paralelismo de dados é o que melhor se enquadra, pois define-se que o processador deve executar as mesmas tarefas sobre diferentes dados aproximadamente do mesmo tamanho, tendo um único fluxo de controle SPMD (Single Process Multiple Data).

O desafio a ser vencido, neste caso e, mais especificamente em imagens médicas, é a divisão da imagem em blocos e a posterior junção destes sem perdas de informações, após o processamento. Considerando que no domínio espacial é comum a utilização de templates deve-se prever, ainda, uma sobreposição entre os blocos a fim de que não faltem dados durante o processamento das partes de uma imagem. Após o processamento, os dados sobrepostos devem ser desconsiderados a fim de que não fiquem duplicados na imagem resultante. A Figura 3 ilustra uma estratégia de paralelização em que uma imagem médica é dividida em blocos pelo mestre, e subseqüentemente é transmitida por meio das bibliotecas mpijava e JPVM aos escravos. Estes têm a incumbência de processar a imagem e retransmitir os blocos já processados ao mestre, o qual os une reconstituindo-a. Figura 3. Estratégia de paralelização de imagens médicas [7]. Pode-se perceber também, nesta Figura pelo número de linhas em cada um dos blocos 1, 2 e 3, que os blocos apresentam tamanhos variados dependendo da característica de cada algoritmo. Alguns algoritmos abordados neste artigo usam templates que operam sobre uma vizinhança de pontos da imagem; sendo assim, há necessidade de redundância nos blocos para o processamento, conforme citado (destacados em vermelho na Figura 3). 5. Análise de Desempenho dos Resultados Obtidos A análise de desempenho dos algoritmos de filtro de mediana e de detecção de bordas foi realizada por meio de diferentes testes reais em um ambiente paralelo distribuído controlado, composto inicialmente por 3 máquinas homogêneas (Pentium IV de 2.7GHz com 512Mbytes de RAM, interligadas por uma rede ethernet de 1MB/s). Posteriormente foram acrescidas máquinas idênticas para compor um ambiente de 4 e 5 máquinas. Foram utilizadas imagens mamográficas (radiografia das mamas) de elevado tamanho (aproximadamente 11 Mb, consistindo em matrizes com tamanho médio 25X3 pixels, no formato TIFF, com resolução de contraste de 16 bits). O filtro de mediana foi avaliado com máscaras de tamanhos diferentes (3x3, 5x5 e 7x7) utilizando o algoritmo de ordenação shellsort. O filtro de detecção de bordas foi executado com máscara de tamanho 11x11. Observa-se que o tamanho da máscara é o que define o tamanho da vizinhança a ser considerada. Dependendo do tipo da imagem, uma maior vizinhança pode levar a um melhor resultado de processamento. Após a realização dos testes obteve-se uma média dos 3 tempos de processamento tanto para aplicação seqüencial quanto para a paralela para os diferentes tipos de máscaras. Na avaliação da execução em paralelo foram efetuados testes com até cinco máquinas e, para cada uma delas, testes com até 8 processos sendo iniciados em paralelo. Isso possibilitou realizar a comparação de desempenho de cada uma das possíveis combinações. Todos os testes foram efetuados usando as bibliotecas JPVM e mpijava e os resultados obtidos foram avaliados estatisticamente para comprovar seu grau de significância por meio do uso do teste de hipótese [5]. As Figuras 4 e 5 apresentam os resultados da execução seqüencial do filtro mediana bem como as execuções em paralelo do mesmo algoritmo em 3, 4 e 5 máquinas respectivamente. 8 7 6 5 3 1 Figura 4 Média do tempo de execução da aplicação filtro de mediana de máscara 3x3 fazendo uso do ambiente de troca de mensagens mpijava. Pelas figuras é possível observar que o tempo de execução do algoritmo seqüencial, quando considerada a vizinhança de tamanho 3x3, é significativamente melhor que o tempo do mesmo em paralelo, tanto usando JPVM quanto mpijava, independentemente do número de

máquinas e da quantidade de processos iniciados em paralelo. Uma vez que a quantidade de cálculos efetuados pelo filtro com máscara 3x3 é relativamente pequena, a paralelização do mesmo não resulta em melhoria, pois se consome mais tempo com comunicação para envio de dados através da rede do que no cálculo da máscara propriamente dita, ou seja, o tempo utilizado para o envio de cada parte da imagem (subvetor) é maior que o tempo gasto pelos escravos para realizar o processamento (formação e ordenação do vetor), o que a torna uma aplicação mais voltada para comunicação do que para processamento. comprovar que o uso da computação paralela distribuída auxilia e otimiza o uso de algoritmos de processamento de imagens com grande volume de dados. Nos casos em que o número de processos ultrapassa uma unidade em cada máquina o tempo médio de processamento paralelo fica um pouco prejudicado no caso da máscara 5x5 devido à sobrecarga na comunicação. À medida que se aumenta o número de processos para certa quantidade de máquinas, o desempenho diminui, tornando-se maior que o tempo médio seqüencial. Isso acontece porque quando se aumenta o número de processos a comunicação passa a ser um fator evidente de queda de desempenho. 8 7 6 5 3 1 1 9 8 7 6 5 3 1 Figura 5 Média do tempo de execução da aplicação filtro de mediana de máscara 3x3 fazendo uso do ambiente de troca de mensagens JPVM. As Figuras 6, 7, 8 e 9 apresentam os resultados das mesmas execuções anteriores levando em consideração as máscaras 5x5 e 7x7, respectivamente. 1 9 8 7 6 5 3 1 Figura 6 Média do tempo de execução da aplicação filtro de mediana de máscara 5x5 fazendo uso do ambiente de troca de mensagens mpijava. Pelas figuras é possível observar que o tempo de execução do algoritmo seqüencial a partir do uso dessas máscaras é significativamente pior que o tempo de execução em paralelo, tanto usando o JPVM quanto o mpijava. Isso pode ser observado principalmente para situações onde o número de processos equivale ou é maior que o número de máquinas. Nesses casos pode-se Figura 7 Média do tempo de execução da aplicação filtro de mediana de máscara 5x5 fazendo uso do ambiente de troca de mensagens JPVM. Diferentemente das máscaras 3x3 e 5x5, quando utilizada a máscara 7x7, independentemente do número de processos iniciados (considerando um máximo de 8 processos) e do número de máquinas, o tempo médio paralelo é sempre menor que o tempo seqüencial, uma vez que o processamento é alto e o aumento no número de processos ainda implica em ganho de desempenho sobre a sobrecarga de comunicação. 18 16 1 1 1 8 6 Figura 8 Média do tempo de execução da aplicação filtro de mediana de máscara 7x7 fazendo uso do ambiente de troca de mensagens mpijava. Essa diferença e significativa melhora de desempenho, quando se usa uma arquitetura paralela distribuída, dá-se

pelo fato dos cálculos efetuados pelas máscaras serem volumosos, garantindo uma melhoria do uso em paralelo uma vez que a comunicação imposta se torna desprezível quando comparada ao ganho em relação aos cálculos efetuados. 18 16 1 1 1 8 6 Figura 9 Média do tempo de execução da aplicação filtro de mediana de máscara 7x7 fazendo uso do ambiente de troca de mensagens JPVM. Na Figura 1 podem ser observados os tempos de execução seqüencial e paralelo do mpijava e do JPVM. Observa-se que a JPVM apresenta um melhor desempenho se comparado com a mpijava, o que pode ser um indicativo que a biblioteca JPVM possui um comportamento relativamente melhor que a mpijava para o filtro de mediana. De qualquer forma, em ambos os casos o desempenho médio da execução em paralelo é significativamente melhor que o da seqüencial. 18 16 1 1 1 8 6 mpijava JPVM Figura 1 Média do tempo de execução da aplicação seqüencial comparada com as aplicações paralelas do filtro de mediana de máscara 7x7 fazendo uso dos ambientes de troca de mensagem mpijava e JPVM. O número de processos mostrou ser um fator muito importante. No caso da biblioteca JPVM, o melhor número de processos é o mesmo que o número de máquinas que forma a máquina virtual. Já na mpijava, o melhor resultado é obtido quando se tem um número maior de processos do que o número de máquinas participantes. Isso é devido ao fato de que a mpijava usa um processo mestre que é contabilizado, mas não efetua a tarefa escrava propriamente dita. As Figuras 11 e 12 apresentam os resultados da execução seqüencial do filtro de detecção de bordas bem como as execuções em paralelo do mesmo algoritmo em 4 e 5 máquinas utilizando máscara de tamanho 11x11 com as bibliotecas mpijava e JPVM, respectivamente. Média do Tempo de Excução 18 16 1 1 1 8 6 Figura 11 Média do tempo de execução da aplicação filtro de detecção de borda de máscara 11x11 fazendo uso do ambiente de troca de mensagem mpijava. 18 16 1 1 1 8 6 Figura 12 Média do tempo de execução da aplicação filtro de detecção de borda de máscara 11x11 fazendo uso do ambiente de troca de mensagem JPVM. É possível observar que independentemente do número de processos iniciados, o tempo médio paralelo, tanto fazendo uso do mpijava quanto do JPVM, é sempre melhor que o seqüencial. Nas Figuras 13 e 14 são apresentados os tempos de execução seqüencial e paralelo da mpijava e da JPVM do filtro de detecção de bordas em 5 máquinas, com a utilização de máscara de tamanho 9x9 e 11x11, respectivamente. Pode-se observar que, da mesma forma que o filtro de mediana, considerando-se JPVM ou mpijava, o desempenho médio da execução em paralelo é significativamente melhor que o da seqüencial. Com a utilização de máscara de tamanho 9x9, observase que o JPVM apresenta um melhor desempenho se comparado com o mpijava. O mpijava consegue um melhor resultado que o JPVM quando o número de processos passa a ser maior, em uma unidade, que o número de máquinas utilizadas, ou seja, 5 máquinas e 6 processos.

Já com a utilização de máscara de tamanho 11x11, observa-se que o mpijava apresenta um melhor desempenho se comparado com o JPVM. Isso implica que para se avaliar corretamente as bibliotecas novos estudos devem ser efetuados a fim de determinar suas diferenças e definir qual é a melhor, seja de forma geral ou específica, para alguns tipos de algoritmos de processamento de imagens. 18 16 1 1 1 8 6 mpijava JPVM Figura 13 Média do tempo de execução da aplicação seqüencial comparada com as aplicações paralelas do filtro de detecção de borda de máscara 9x9 fazendo uso dos ambientes de troca de mensagem mpijava e JPVM. 18 16 1 1 1 8 6 mpijava JPVM Figura 14 Média do tempo de execução da aplicação seqüencial comparada com as aplicações paralelas do filtro de detecção de borda de máscara 11x11 fazendo uso do ambiente de troca de mensagem mpijava e JPVM. 6. Conclusões Partindo-se dos resultados obtidos pode-se verificar que existe um ganho em usar o processamento paralelo distribuído quando se pensa em processamento de imagens médicas. Acredita-se que a utilização de outros filtros no domínio espacial também possa prover melhora significativa de desempenho para a versão paralela quando comparada à execução seqüencial. Apesar do resultado não ser favorável à execução paralela do filtro mediana quando aplicada a máscara 3x3 e, em alguns, casos a máscara 5x5, foi possível observar que para processamentos intensos o uso do processamento paralelo é bastante vantajoso e garante a otimização no tempo de execução de algoritmos de processamento de imagens. Com base nesses resultados obtidos têm-se como trabalhos futuros o desenvolvimento de novos algoritmos de processamento de imagens bem como a avaliação de outros algoritmos de ordenação presentes nestes algoritmos de processamento. Acredita-se também que a paralelização dos algoritmos de ordenação presentes nos algoritmos de processamento de imagens possa prover melhora significativa no desempenho dos mesmos. Além disso, testes adicionais devem ser executados para avaliar também qual das duas bibliotecas utilizadas (JPVM e mpijava) apresenta melhor desempenho, uma vez que para um mesmo filtro dependendo da máscara utilizada houve um comportamento diferente entre as mesmas. O desenvolvimento paralelo de outros algoritmos de processamento de imagens permitirá a obtenção de um conjunto maior de dados a partir do qual informações poderão ser extraídas com maior fidelidade a fim de construir uma base de comparação efetiva tanto no tocante aos algoritmos quanto as bibliotecas de passagem de mensagem. Referências [1] Baker, M. et al. (1998) mpijava: A Java Interface to MPI. Submitted to First UKWorkshop on Java for High Performance Network Computing, Europar. [2] Barbosa, Jorge M. G. () Paralelismo em Processamento e Análise de Imagem Médica. Tese (Doutorado) apresentada ao Departamento de Engenharia Electrotécnica e de Computadores Faculdade de Engenharia da Universidade do Porto, p.24. [3] Ferrari, A. J.; (1998) JPVM: Network parallel computing in Java, In ACM 1998 Workshop on Java for High- Performance Network Computing, Palo Alto, February 1998. Concurrency: Pactice and Experience. [4] Gonzalez, R. C.; Woods, R. E. (22). Digital Image Processing. Addison-Wesley Publishing Company, Massachusetts, 2a. Edição. [5] Jain, R. The Art of Computer Systems Performance Analysis: Techniques for Experimental Design, Measurement, Simulation, and Modeling. John Wiley & Sons, 1991. [6] Nunes, F. L. S. M. (21) Investigações em Processamento de Imagens Mamográficas para Auxílio ao Diagnóstico de Mamas Densas. São Carlos, p.23. Tese (Doutorado) apresentada ao Instituto de Física de São Carlos Universidade de São Paulo. [7] Saito, P. T. M.; Sabatine, R. J.; Nunes, F. L. S.; Branco, K. R. L. J. C. Uso da Computação Paralela Distribuída para Melhoria no Tempo de Processamento de Imagens Médicas. XIV Escola Regional de Informática da SBC - ERI-PR. Guarapuava, PR. 27, pág 36 a 47, 27.