Programação Paralela em Arquiteturas Multi-Core/Aplicações Internet: diferenças entre revisões

[edição não verificada][edição não verificada]
Conteúdo apagado Conteúdo adicionado
Sem resumo de edição
Linha 35:
=== Grid ===
 
Uma aplicação paralela consiste de diversas tarefas. Cada tarefa roda em um
FAZER
processador distinto, possibilitando que a aplicação compute em paralelo, desta forma
executando mais velozmente do que se estivesse rodando em um único processador.
Tarefas comunicam-se entre si para garantir o progresso consistente da aplicação. A
intensidade da comunicação entre as tarefas de uma dada aplicação paralela
estabelece a granularidade daquela aplicação. Aplicações que demandam intensa
comunicação são ditas pesadas ou de fina granulariade. Aplicações cujas tarefas
requerem pouca comunicação são ditas leves ou de grossa granularidade.
 
A granularidade de uma aplicação paralela estabelece requerimentos para a
plataforma na qual a aplicação é executada. A plataforma de execução de uma
aplicação paralela consiste dos processadores usados pela aplicação e também das
redes que conectam estes processadores. Aplicações paralelas pesadas demandam
plataformas dedicadas (tais como supercomputadores massivamente paralelos) para
que o ''overhead'' de comunicação não anule os ganhos decorrentes do paralelismo.
Aplicações paralelas leves, ao contrário, podem efetivamente utilizar processadores
compartilhados e interconectados por redes de longa distância.
 
Aplicações paralelas leves têm sido foco de muita atenção em indústrias e universidades, devido principalmente a dois importantes fatores. Primeiro, as aplicações paralelas leves representam uma fração respeitável das aplicações paralelas, incluindo [[Wikipedia:|data mining]], pesquisas massivas e várias aplicações de manipulação de imagens(como tumografia), por exemplo. Segundo, o projeto [[Wikipedia:|SETI]]@home demonstrou que aplicações paralelas leves podem utilizar efetivamente um número grande de processadores conectados à Internet.
 
A computação em grade (do inglês [[Wikipedia:|grid computing]]) é um modelo computacional capaz de alcançar uma alta taxa de processamento dividindo as tarefas entre diversas máquinas, podendo ser em rede local ou rede de longa distância, que formam uma [[Wikipedia:|máquina virtual]]. Esses processos serão executados no momento em que as máquinas não estão sendo utilizadas pelo usuário, evitando assim o desperdício de processamento da máquina utilizada.
 
=== P2P ===