
PROJETO DE PESQUISA - PROGRAMAÇÃO PARALELA
Alexandre Santos do Nascimento
Leandro de Castro Gomes
A idéia de paralelismo no processo
computacional é quase tão antiga
quanto o primeiro modelo de computador eletrônico surgido em
1946, o ENIAC (Electronic
Numerical Integrator and Computer). A computação
passou por um processo evolutivo intenso desde daquela
época, tanto em nível de
hardware e software, a fim de proporcionar maior desempenho e ampliar o
leque
de aplicações que podem ser computacionalmente
resolvidas de maneira eficiente.
O
processamento paralelo consiste na divisão de determinadas
partes da aplicação
de maneira que se possa distribuir a carga do processamento pelos
vários
elementos de processamento que por sua vez deverão cooperar
entre si
(comunicação e sincronismo), a fim de se
alcançar eficiência através da quebra
do paradigma de execução seqüencial do
fluxo de instruções, ditado pela
filosofia de Von Neumann o qual, em seus artigos, sugeria formas
paralelas de
se resolver equações diferenciais.
Alguns fatores justificam a idéia da
programação paralela nas áreas nas
quais a computação se aplica, sejam
científicas, industriais ou militares, onde requerem cada
vez mais poder
computacional, em virtude dos algoritmos cada vez mais complexos que
são
utilizados e do tamanho do conjunto de dados a ser processado.
Outro fato é que várias
aplicações são
inerentemente paralelas porém, perde-se desempenho pela
necessidade de
torná-las seqüenciais. O chamado "gargalo de Von
Neumann", segundo
Almasi [ALM94], tem diminuído a produtividade do
programador, daí a necessidade
de novas maneiras de organização do processamento
computacional. STARMEDIA[2000]
Atualmente existem algumas linguagens de programação paralela que surgiram como novo recurso para facilitar a tarefa de se construir programas que utilizem os recursos de paralelismo de equipamentos com arquitetura de computação paralela. Para utilizar plenamente os recursos de um equipamento multiprocessado, existem basicamente duas opções, construir programas explicitando e controlando manualmente os trechos de paralelismo, utilizando recursos de uma Linguagem de Programação como o C para a criação das threads e processos necessários, ou utilizar-se de uma linguagem de programaçã o paralela, que, na verdade, não passam de diretivas de compilador para uma linguagem de programação pré existente como por exemplo C, que possuem recursos que facilitam o tratamento de trechos paralelos e seqüenciais dos programas, atuando como um pré-compilador e criando a versão final em uma linguagem de programação como C, poupando ao programador a tarefa de se preocupar com o gerenciamento de threads e processos. PENASIO[2004]
STARMEDIA,2000 - Curso de Progrmação
Paralela Fonte: http://orbita.starmedia.com
Disponível em:
htt://orbita.starmedia.com/~computacaounifenas/paralela/introducao.htm