p:programacao_paralela
Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
| Ambos lados da revisão anteriorRevisão anteriorPróxima revisão | Revisão anterior | ||
| p:programacao_paralela [2022/08/30 19:11] – [Grandes Nomes] Marcelo Schreiber | p:programacao_paralela [2022/08/30 19:12] (atual) – [Grandes Nomes] Marcelo Schreiber | ||
|---|---|---|---|
| Linha 1: | Linha 1: | ||
| + | ====== Visão geral ====== | ||
| + | A **programação paralela** é uma forma de realizar muitos cálculos em simultâneo, | ||
| + | Assim, evita-se a programação sequencial, a qual pode ser muito ineficiente. | ||
| + | |||
| + | ====== Principais Marcos ====== | ||
| + | |||
| + | Na década de **1950**, começa-se a trabalhar em maneiras de tornar os programas mais eficientes. | ||
| + | Diante disso, cria-se o conceito de **" | ||
| + | |||
| + | Além disso, também foi introduzido a ideia de **" | ||
| + | |||
| + | Alguns anos depois, na decáda de 60, já havia algumas implementações de ordens hierárquica de processos sequenciais. Assim, tornou-se realizável, | ||
| + | |||
| + | Outrossim, outro grande marco foi 10 anos depois (**1978**), com o surgimento da Lógica de Hoare, a qual, com uma abordagem axiomática, | ||
| + | |||
| + | Por fim, é importante ressaltar que o primeiro processador multi-core (dual-core) para desktop, só foi surgir ao final de **2006**, com a introdução do Pentium D pela intel. Portanto, estes dois núcleos eram responsáveis por dividir as tarefas entre si. | ||
| + | |||
| + | ====== Grandes Nomes ====== | ||
| + | |||
| + | **[[f: | ||
| + | |||
| + | **[[e: | ||
| + | |||
| + | **Gene Myron Amdahl** - Projetista de computadores que formulou a lei de Amdahl, que afirma uma limitação fundamental da computação paralela. | ||
| + | |||
| + | |||
| + | ====== Aplicações ====== | ||
| + | |||
| + | |||
| + | Na computação paralela pode-se destacar, dentre várias, estas seguintes aplicações: | ||
| + | |||
| + | - Na **bioinformática** para o enovelamento de proteínas (algorítmo para visualização do arranjo tridimensional da proteína); | ||
| + | |||
| + | - Na velocidade de um algorítmo com **programação dinâmica** (resposta realizada com recursividade); | ||
| + | |||
| + | - **Método de Monte Carlo (MMC)**, método estatístico que se baseia em amostragem aleatória em larga escala para obter resultados numéricos. Ou seja, ele usa a aleatoriedade dos dados para gerar resultados determinísticos do problema. | ||
| + | |||
| + | |||
| + | ====== Impacto Social ====== | ||
| + | |||
| + | A programação paralela principalmente impacta na velocidade de processos que antes seriam inviáveis. Mesmo que dificulte a implementação de determinado programa, quase todas as linguagens de programação, | ||
| + | Sendo assim, com o advento dos processadores multi-core, algumas vantagens como: melhor poder de processamento, | ||
| + | |||
| + | ====== Desafios ====== | ||
| + | |||
| + | Ainda existem algumas desvantagens nesta área. Softwares paralelos são **mais difíceis de programar** do que programas seriais, porque a simultaneidade introduz bugs em potencial, como condições de corrida. A comunicação e sincronização entre diferentes subtarefas é frequentemente um dos principais obstáculos para alcançar alta eficiência em programas paralelos. Olhando de outro ângulo, também podemos ver que nem todas as linhas paralelas levam a um aumento na velocidade. Como a tarefa é dividida em vários encadeamentos, | ||
| + | |||
| + | ====== Referências ====== | ||
| + | |||
| + | 1. Gene M. Amdahl | IEEE Computer Society, disponível em: https:// | ||
| + | |||
| + | 2. Charles Antony Richard Hoare – Wikipédia, a enciclopédia livre, disponível em: https:// | ||
| + | |||
| + | 3. Concorrência e Paralelismo (Parte 1) | Entendendo Back-End para Iniciantes (Parte 3), disponível em: https:// | ||
| + | |||
| + | 4. Frances Allen - Wikipedia, disponível em: https:// | ||
| + | |||
| + | 5. Edsger W. Dijkstra - Wikipedia, disponível em: https:// | ||
| + | |||
| + | 6. Difference between Swapping and Context Switching, disponível em: https:// | ||
| + | |||
| + | 7. INE 5645 Programação Paralela e Distribuída, | ||
| + | |||
| + | 8. Computação paralela – Wikipédia, a enciclopédia livre, disponível em: https:// | ||