Arquitetura Paralela

Disponível somente no TrabalhosFeitos
  • Páginas : 24 (5992 palavras )
  • Download(s) : 0
  • Publicado : 25 de fevereiro de 2015
Ler documento completo
Amostra do texto
Arquitetura Paralela
A computação paralela faz uso de múltiplos elementos de processamento
simultaneamente para resolver um problema. Isso é possível ao quebrar um problema em
partes independentes de forma que cada elemento de processamento pode executar sua
parte do algoritmo simultaneamente com outros. Os elementos de processamento podem
ser diversos e incluir recursos como um únicocomputador com múltiplos processadores,
diversos computadores em rede, hardware especializado ou qualquer combinação dos
anteriores. Mesmo em computadores com apenas um processador com um núcleo, o
código escrito para ser paralelo é executado mais rápido que o seqüencial.
Existem diferentes formas de computação paralela: em bit, instrução, de dado ou de
tarefa. Temos que escolher que partes doprograma utilizarão código que serão
executados em paralelo. Outras preocupações que devemos ter são quando as
informações tiverem que ser processadas em uma determinada ordem ou definir até que
nível de paralelismo será utilizado.
Diferentemente da abordagem tradicional para multitarefa, onde você pode criar e
gerenciar um conjunto de tópicos em seu código, o novo modelo de programação paralelapermite você se concentrar nas tarefas que você precisa para realizar e permite ao
runtime criar e gerenciar as threads no seu lugar. Com isso, o desenvolvedor não precisa
se preocupar em como será executado o código, se focando apenas na tarefa que precisa
executar.
Computadores paralelos podem ser classificados de acordo com o nível em que o
hardware suporta paralelismo. Computadores commultinúcleos ou multiprocessadores
possuem múltiplos elementos de processamento em somente uma máquina, enquanto
clusters, MPP e grades usam múltiplos computadores para trabalhar em uma única tarefa.
Arquiteturas paralelas especializadas às vezes são usadas junto com processadores
tradicionais, para acelerar tarefas específicas.
Programas de computador paralelos são mais difíceis de programarque sequenciais, pois
a concorrência introduz diversas novas classes de defeitos potenciais, como a condição
de corrida. A comunicação e a sincronização entre diferentes subtarefas é tipicamente
uma das maiores barreiras para atingir grande desempenho em programas paralelos. O
aumento da velocidade por resultado de paralelismo é dado pela lei de Amdahl.
Qualquer problema matemática ou deengenharia grande tipicamente consistirá de
diversas partes paralelizáveis e diversas partes sequenciais. Nenhum programa pode
rodar mais rápido que a maior cadeia de cálculos dependentes (conhecido como caminho
crítico), já que o cálculo depende do cálculo anterior da cadeia, sendo executado
sequencialmente. Entretanto, a maioria dos algoritmos não consiste de somente uma
longa cadeia decálculos dependentes; geralmente há oportunidades para executar
cálculos independentes em paralelo.
A violação da primeira condição introduz uma dependência de fluxo, correspondendo ao

primeiro fragmento produzindo um resultado usado pelo segundo. A segunda condição
representa a antidependência, quando o primeiro fragmento sobrescreve uma variável
necessária pela segunda expressão. A terceiracondição é a dependência de saída.
Quando duas variáveis escrevem no mesmo local, a saída final deve vir do segundo
fragmento.
As condições de Bernstein não permitem que a memória seja compartilhada por
diferentes processos. Para isso, é necessária alguma forma de assegurar a ordem de
acesso ao recurso, como semáforos, barreiras ou alguma outra forma de sincronizaçã
Linguagens de programação ecomputadores paralelos devem ter um modelo de
consistência, também conhecido como modelo de memória, que define as regras de
execução das operações em memória e como os resultados são produzidos.
Tal modelo é a propriedade de que a execução de um programa paralelo produz o mesmo
resultado que um programa sequencial. Especificamente, um programa é
sequencialmente consistente se "… os...
tracking img