Comparativo de desempenho das técnicas de programação paralela forks e threads e aplicação em processamento de imagens
PDF

Palavras-chave

fork
thread
comparativo
desempenho
multiprocessamento
speedup

Resumo

Alguns algoritmos aplicados na solução de problemas específicos de física exigem um alto desempenho computacional. Este é o caso por exemplo da área de processamento digital de imagens, onde as características de desempenho em termos de velocidade, algumas vezes com respostas em tempo real, nos leva ao uso de ferramentas da programação paralela. Para atender a essa demanda é importante uma compreensão dessas ferramentas, evidenciando suas diferenças e possibilidades de aplicações. No mesmo sentido, cabe destacar, que atualmente os centros de pesquisas em todo mundo tem a sua disposição clusters de computadores, ou plataformas computacionais que disponibilizam vários núcleos para cálculos científicos, tendo assim um forte potencial para uso destas técnicas de programação paralela.

É objetivo deste trabalho caracterizar as técnicas de programação paralela por threads e forks. Ambas as técnicas permitem o desenvolvimento de códigos de execução paralela, e tem restrições próprias na comunicação das informações entre os processos e no formato de programação. Este trabalho pretende evidenciar o uso de cada uma dessas técnicas, e ao final apresentar uma aplicação na área de processamento de imagens na qual ambas foram utilizadas.

A parte dedicada a aplicação das técnicas em processamento de imagens foi desenvolvida dentro da colaboração internacional com o Laboratório JET (Join European Torus da Agência Europeia de Energia Atômica/EURATOM). O JET estuda as instabilidades no processo de formação do plasma, que se manifestam como bandas de radiações, conhecidas como MARFE (Multifaceted Asymmetric Radiation From The Edge). Apresentamos técnicas de programação em paralelo em algoritmos de processamento digital de imagens com o objetivo de detectar o MARFE a uma taxa superior a 10.000 imagens/s. Os algoritmos desenvolvidos usam as técnicas de programação por threads e de memória compartilhada entre processos independentes, equivalentes ao fork.

PDF