Prévia do material em texto
Arquiteturas de Processamento Ferramentas de Programação Paralela CPU é componente central de qualquer threads, OpenMP e Java Threads são sistema computacional adequadas para memória compartilhada GPU classifica-se como arquitetura MPI é mais usado em sistemas com memória SIMD na taxonomia de Flynn distribuída, não compartilhada Arquiteturas MIMD e MISD possuem CUDA é voltada para programação paralela em múltiplos fluxos de instrução e dados GPUs GPU depende da CPU para funcionar, Sockets são usados para comunicação entre focando em processamento paralelo processos em rede, não paralelismo direto gráfico Sistemas Arquitetura Mestre-Escravo Programação Paralela e Concorrente Granularidade grossa minimiza Distribuídos Erlang usa passagem de mensagens penalidade se um escravo falhar para comunicação entre Granularidade fina exige mais processos escravos para tarefas específicas Erlang não utiliza memória compartilhada, Sistema mestre-escravo possui favorecendo sistemas de tempo real apenas um mestre controlando OS Mutex é a técnica mais comum para garantir escravos exclusão mútua em variáveis compartilhadas Coordenação centralizada facilita Condição de corrida ocorre quando controle, mas pode ser ponto único múltiplos threads acessam recurso de falha simultaneamente Virtualização com Docker Docker isola aplicações usando containers, consumindo menos recursos que VMs Memória Distribuída Docker utiliza namespaces do Linux Replicação e Consistência de Dados para criar ambientes isolados para Memória distribuída é mais containers Replicação síncrona atualiza dados de escalável que memória forma atômica e consistente Permite portabilidade de compartilhada tradicional containers entre diferentes hosts Consistência fraca permite dados Programador deve gerenciar com Docker instalado desatualizados temporariamente para maior explicitamente a distribuição escalabilidade Docker não usa hypervisors, dos dados diferentemente das máquinas Latência pode impactar desempenho em Memória distribuída não virtuais tradicionais replicações síncronas elimina todas as condições de Replicação síncrona garante que todos os corrida automaticamente nós tenham dados atualizados Escalabilidade facilita uso simultaneamente em sistemas com grande número de nós