Sunteți pe pagina 1din 5

Computao paralela: a mquina paralela de acesso aleatrio

Wilian Cardoso
1

1
Engenharia de Computao Universidade Tecnolgica Federal do Paran (UTFPR)
wilianecomp@gmail.com

Resumo. Nos ltimos anos, a computao tem-se deparado com uma limitao
fsica no aumento de velocidade de processamento. Um dos grandes desafios da
computao atualmente viabilizar solues computacionais que reduzam o
tempo de processamento e forneam respostas ainda mais precisas. Este artigo
traz conceitos de modelos de mquinas de processamento paralelo com enfoque
no modelo Maquina Paralela de Acesso Aleatrio que vem sendo explorada cada
vez mais como soluo para reduzir este tempo de processamento com o intuito
de driblar esta limitao fsica.

Palavras-chave: paralelismo, computao paralela, compartilhamento de
recursos.

1. Introduo

John Von Neumann elaborou a primeira arquitetura de computador de programa
armazenado prtico (esquema para ligar os componentes do computador), em meados
dos anos 1940. composto por cinco componentes clssicos (entrada, sada,
processador, memria e barramento). O processador dividido em uma unidade
aritmtica e lgica (ALU - sigla em ingls) e unidade de controle, um mtodo de
organizao que persiste at aos dias atuais. Os registradores so mdulos de memria
rpida para o qual os dados podem ser lidos ou escritos para suportar um fluxo rpido
de dados. Dentro da ALU, um acumulador suporta adio ou incrementao dos valores
correspondentes a variveis tais como os ndices ciclos. A arquitetura de Von Neumann
tem uma desvantagem significativa - a sua velocidade dependente da taxa de
transferncia do barramento ou o caminho de dados entre o processador e memria. Esta
Desvantagem chamada de Von Neumann bottleneck (Gargalo de Von Neumann em
traduo livre).

Figura 1 - Diagrama esquemtico da arquitetura de Vonn Neumann, adaptado de
[Maf01].

Em seu sentido mais simplrio, computao paralela a utilizao simultnea de
vrios recursos de computao para resolver um problema computacional. Um exemplo
de implementao consiste em quebrar um problema em partes discretas que podem ser
resolvidos simultaneamente usando mltiplos processadores; cada parte ainda mais
discriminada em uma srie de instrues; cada instruo , por sua vez, executada em
paralelo em diferentes processadores; necessrio um mecanismo de controle ou
coordenao geral para distribuir as partes e posteriormente reunir as que j foram
processadas de modo que a soluo do problema se encontre nesta conjuno de partes.

2. Nveis de Paralelismo

Existem trs tipos de paralelismo, brevemente descritos abaixo:

Paralelismo em nvel de instruo se aproveita de sequncias de instrues que
requerem diferentes unidades funcionais (ULA, multiplicador FP, etc.). Cada
arquitetura aborda isso de maneira especfica, mas a ideia fazer com que essas
instrues independentes sejam executadas simultaneamente para manter as
unidades funcionais ocupadas o mximo de tempo possvel.

Paralelismo em nvel de dados consiste no ato de realizar a mesma operao em
conjunto de mltiplos dados simultaneamente. Um exemplo clssico seria estar
realizando uma operao em uma imagem na qual o processamento de cada
pixel independente daqueles ao seu redor (como clareamento). Este tipo de
processamento de imagem serve bem para ter vrios pixeis sendo modificados
simultaneamente usando a mesma funo de modificao. Outros tipos de
operaes que permitem a explorao de paralelismo em nvel de dados so
matrizes, vetores e processamento vetorial.

Paralelismo em nvel de thread o ato de executar mltiplos fluxos de execuo
de um nico processo simultaneamente. Este tipo de paralelismo mais
frequentemente encontrados em aplicaes que necessitam executar tarefas
independentes, no relacionadas (como acessos de memria e IO)
simultaneamente. Estes tipos de aplicaes so frequentemente encontrados em
mquinas que tm uma alta carga de trabalho, como servidores web. Este tipo de
paralelismo um campo popular para a pesquisa atual, devido crescente
popularidade dos sistemas multi-core e multi- processador, que permitem que
diferentes segmentos sejam executados verdadeiramente em paralelo.

3. Modelos de Computao Paralela
Existem diversos modelos de computao paralela. Dentre os mais comuns se
encontram o BSP (Bulk Synchronous Parallel Model) que baseado no conceito de
supersteps (superpassos em traduo livre), o CGM (Coarse Grained
Multicomputer) que composto de um conjunto de p processadores, de P
1
a P
n
,
memria local por processador e uma rede de comunicao arbitrria (ou memria
compartilhada), e o modelo PRAM (Parallel Random Access Machine) que ser mais
detalhadamente abordado neste artigo.

4. Mquina paralela de acesso aleatrio

A mquina paralela de acesso aleatrio (PRAM - sigla em ingls) um modelo abstrato
de computao paralela que assume que todos os processadores operam de forma
sncrona em um nico relgio e so capazes de acessar aleatoriamente uma grande
memria compartilhada. Em particular, um processador pode executar uma operao
aritmtica, lgica, ou de acesso memria dentro de um nico ciclo de relgio.
A mquina paralela de acesso aleatrio uma generalizao natural da mquina de
acesso aleatrio (RAM - sigla em ingls) e esta um modelo conveniente de um
computador sequencial. Suas caractersticas compreendem de uma unidade de
computao que executa um programa de um usurio definido; utiliza uma fita
exclusiva de leitura de entrada e uma fita exclusiva de gravao de sada; um nmero
ilimitado de clulas de memria locais; cada clula de memria pode armazenar um
nmero inteiro de tamanho ilimitado; o conjunto de instrues inclui operaes para:
mover dados entre clulas de memria, comparaes e ramificaes condicionais,
adies, subtraes e multiplicaes; a execuo inicia-se com a instruo reset do
programa e termina quando uma instruo parada atingida; cada operao tem uma
unidade de tempo, independentemente do tamanho dos operandos.


Figura 2 - Diagrama esquemtico de uma PRAM, adaptado de [Mil05].

importante notar que os processadores no esto diretamente ligados uns aos outros.
Assim, se dois processadores desejam se comunicar em seu esforo para resolver um
problema, devem faz-lo atravs da memria compartilhada. Isto , os algoritmos
PRAM muitas vezes tratam a memria comum, como um quadro negro. Por exemplo,
suponhamos que o processador P1 mantm um valor crtico de um de seus
registradores. Ento, para que outro processador possa ver ou utilizar este valor, P1 deve
escrever o valor para uma localizao na memria global. Uma vez que o dado esteja l,
outros processadores podero ento ler este valor.
Modelos Populares de PRAM:
O PRAM CREW (Conccurrent Read Exclusive Write) um dos modelos mais
populares, porque representa um modelo atraente de forma intuitiva. Ou seja, ele
assume que leituras simultneas podem ocorrer, mas probe as gravaes
simultneas.
O PRAM EREW (Exclusive Read and Write) a forma mais restritiva do
PRAM em que probe tanto leituras concorrentes quanto gravaes simultneas.
Por permitir apenas leituras e gravaes exclusivas, muito mais desafiador
projetar algoritmos eficientes para este modelo. Alm disso, devido severas
restries sobre o modelo EREW PRAM, qualquer algoritmo projetado para o
EREW PRAM ser executado em qualquer um dos outros modelos. Nota-se, no
entanto, que um algoritmo EREW timo pode no ser timo em outra Modelos
PRAM.
O PRAM CRCW (Concurrent Reading Concurrent Writing) permite tanto
leituras simultneas quanto escritas concorrentes. Quando usamos esse modelo,
os detalhes gravao concorrente devem ser especificados.

5. Consideraes Finais

PRAM um modelo atraente e importante para projetistas de algoritmos paralelos, pois
um modelo natural: o nmero de operaes executadas por um ciclo de p
processadores , no mximo, p; um modelo forte: qualquer processador pode ler ou
gravar qualquer clula de memria compartilhada em uma nica unidade de tempo;
um modelo simples: ele abstrai de qualquer sobrecarga de comunicao ou de
sincronizao, o que torna a complexidade e anlise de correo de algoritmos PRAM
mais fcil. A PRAM corresponde intuitivamente a viso de um computador paralelo dos
programadores: ele ignora nvel limitaes de arquiteturas mais baixos, e os detalhes,
como a conteno de memria de acesso e sobrecarga, sobrecarga de sincronizao,
interconexo de rede, conectividade, limites de velocidade e larguras de banda.
Portanto, ela pode ser usada como um modo de previso de implementao: se um
problema no tem soluo vivel ou eficiente na PRAM, no tem soluo vivel ou
eficiente em qualquer outra mquina paralela.

6. Referncias

[Maf01] Mafla, E. Course Notes, CDA3101, at URL http://www.cise.ufl.edu/~emafla/
(as-of 11 Apr 2001).

[Mil05] Miller, Russ; Boxer, Laurence - Algorithms sequential and parallel - a unified
approach (2005).

S-ar putea să vă placă și