Networking  
 
Rede de conhecimento computador >> Networking >> Outros Redes de Computadores >> Content
Quais são as principais diferenças entre a computação paralela e distribuída?
Embora a computação paralela e distribuída envolva o uso de vários processadores para resolver um problema mais rapidamente, eles diferem significativamente em sua arquitetura, mecanismos de comunicação e como lidam com recursos compartilhados. Aqui está um colapso das principais diferenças:

1. Arquitetura e hardware:

* Computação paralela:
* Normalmente envolve fortemente acoplado processadores em uma única máquina ou um pequeno cluster.
* Os processadores geralmente compartilham um espaço de memória comum (Arquitetura de memória compartilhada) ou possui interconexões muito rápidos para passagem de mensagens (por exemplo, dentro de um supercomputador).
* O foco está em minimizar a latência para a comunicação entre os processadores.
* Muitas vezes, depende de arquiteturas especializadas de hardware, como CPUs multi-núcleo, GPUs ou processadores especializados.

* Computação distribuída:
* Envolve Localmente acoplado Os processadores se espalham por várias máquinas, geralmente dispersas geograficamente.
* Máquinas Não compartilhe um espaço de memória comum . Cada máquina tem sua própria memória local.
* A comunicação depende de conexões de rede , que geralmente são mais lentos e menos confiáveis ​​que as interconexões usadas em sistemas paralelos.
* Usa hardware de commodities (servidores padrão, desktops, etc.) conectados por uma rede (por exemplo, LAN, WAN, Internet).

2. Comunicação:

* Computação paralela:
* Memória compartilhada: Os processadores se comunicam lendo e escrevendo para um local compartilhado de memória. Requer mecanismos cuidadosos de sincronização (bloqueios, semáforos) para evitar condições de corrida.
* Mensagem Passagem: Mensagens explícitas são enviadas entre os processadores. Isso é mais comum em clusters bem acoplados, onde o compartilhamento direto de memória não é viável ou eficiente.
* A comunicação geralmente é rápida e baixa latência .

* Computação distribuída:
* Mensagem Passagem: A comunicação ocorre principalmente através de mensagens passadas pela rede. Os exemplos incluem protocolos TCP/IP, HTTP ou especializados.
* Chamadas de procedimento remoto (RPC): Uma abstração comum em que um programa em uma máquina chama um procedimento em outra máquina.
* A comunicação geralmente é mais lenta e mais alta latência devido à sobrecarga da rede. As falhas de rede também são uma grande preocupação.

3. Modelo de programação:

* Computação paralela:
* Os modelos de programação geralmente assumem um espaço de memória compartilhado e exigem um gerenciamento cuidadoso da sincronização e da consistência dos dados.
* Os modelos de programação comuns incluem:
* Memória compartilhada: OpenMP, Pthreads
* Mensagem Passagem: MPI (interface de passagem de mensagens)
*Mais fácil de programar em comparação com a computação distribuída, *ao usar a memória compartilhada *, pois os desenvolvedores não precisam gerenciar explicitamente os detalhes da comunicação. A passagem de mensagens em computação paralela ainda é complexa, mas geralmente mais simples do que em sistemas distribuídos.

* Computação distribuída:
* Os modelos de programação geralmente se concentram na tolerância a falhas, na distribuição de dados e no manuseio de problemas de rede.
* Os modelos de programação comuns incluem:
* MapReduce (Hadoop): Para processamento de dados em larga escala.
* Microservices : Projetando aplicativos como uma coleção de serviços pequenos e independentes.
* Filas de mensagem (por exemplo, RabbitMQ, Kafka): Para comunicação assíncrona entre serviços.
* Programação mais complexa em comparação com a computação paralela, porque os desenvolvedores devem lidar explicitamente com comunicação, serialização de dados e tolerância a falhas.

4. Tolerância de falhas:

* Computação paralela:
* A falha de um único processador geralmente pode reduzir todo o sistema, especialmente em arquiteturas de memória compartilhada.
* A tolerância a falhas geralmente é menos preocupante em comparação com os sistemas distribuídos, pois são frequentemente usados ​​em ambientes controlados.

* Computação distribuída:
* A tolerância a falhas é uma consideração crítica do design. O sistema deve poder continuar operando, mesmo que algumas máquinas falhem.
* As técnicas incluem:
* Replicação: Dados e cálculos são duplicados em várias máquinas.
* Ponto de verificação: Salvar periodicamente o estado de um cálculo para que possa ser reiniciado se ocorrer uma falha.
* algoritmos de consenso (por exemplo, paxos, jangada): Para garantir o acordo entre as máquinas na presença de falhas.

5. Escalabilidade:

* Computação paralela:
* A escalabilidade é frequentemente limitada pela arquitetura da máquina. A expansão normalmente significa adicionar mais processadores ou memória à mesma máquina, que pode ser cara e tem limites físicos.
* A dimensionamento para um número muito grande de processadores se torna cada vez mais difícil devido à sobrecarga de comunicação e gargalos de sincronização.

* Computação distribuída:
* altamente escalável. Escala facilmente adicionando mais máquinas à rede.
* Pode lidar com grandes quantidades de dados e cálculos distribuindo a carga de trabalho em um grande cluster.
* A escala horizontal (adicionando mais máquinas) geralmente é mais econômica que a escala vertical (atualizando uma única máquina).

6. Exemplos:

* Computação paralela:
* Simulações científicas (previsão do tempo, dinâmica de fluidos computacional).
* Bancos de dados de alto desempenho em execução em um servidor multi-core.
* Processamento de imagem e vídeo em uma GPU.

* Computação distribuída:
* Mecanismos de pesquisa (Google, Bing).
* Redes sociais (Facebook, Twitter).
* Plataformas de computação em nuvem (AWS, Azure, GCP).
* Plataformas de comércio eletrônico (Amazon, eBay).
* Redes de criptomoedas (Bitcoin, Ethereum).

em resumo:

| Recurso | Computação paralela | Computação distribuída |
| ---------------------- | -------------------------------------------------- | ----------------------------------------------------- |
| Arquitetura | Formemente acoplada, muitas vezes compartilhou a memória. | Localmente acoplado, sem memória compartilhada. |
| Comunicação | Rápido e de baixa latência (memória compartilhada ou interconexões rápidos). | Mais lento e de alta latência (baseada em rede). |
| Programação | Mais simples (memória compartilhada), complexa com a passagem de mensagens | Mais complexo (comunicação explícita, tolerância a falhas). |
| tolerância a falhas | Menos ênfase, ponto único de falha. | Consideração crítica do design, redundância. |
| escalabilidade | Limitado pela arquitetura de hardware. | Escala altamente escalável e horizontal. |

Pense desta maneira:

* Computação paralela: Uma equipe de chefs trabalhando lado a lado na mesma cozinha *, compartilhando ingredientes e equipamentos, para preparar uma refeição rapidamente.

* Computação distribuída: Uma rede de restaurantes em diferentes cidades, cada uma com sua própria cozinha e funcionários, colaborando para cumprir uma grande ordem de catering. Eles precisam comunicar ordens e coordenar a entrega.

Anterior :

Próximo :
  Os artigos relacionados
·Como é uma rede de computadores como o seu cérebro? 
·Como Autorizar Sansa Fuze no Rhapsody 
·O que a rede de falsificação de média 
·WAN Data Link Protocol 
·O que é o Anel Topologia 
·Qual tipo de rede fornece aos clientes acesso limitado …
·Como configurar um servidor proxy ou um gateway para um…
·Como usar Rockbox Com um iPod 
·Como faço para sincronizar meu iPhone com meu Mac 
·Apresentação sobre Redes de Computadores 
  Artigos em destaque
·Como ajustar Registry Arquivos XP Pro velocidade gratui…
·Conectar-se à Internet? Corrija sua conexão com a int…
·Questões do Firewall da Microsoft no Windows XP 
·Como rastrear um endereço IP MSN Hotmail 
·Como adicionar um computador remoto para um domínio 
·Dispositivos utilizados para redes de computadores 
·Qual é a diferença entre as redes Wi -Fi e Wireles Me…
·Qual roteador de wifi é o melhor em um prédio? 
·Como usar o VNC Viewer 4 
·Qual é a relação entre uma sub -rede e nó? 
Cop e direita © Rede de conhecimento computador https://ptcomputador.com Todos os Direitos Reservados