Computação paralela e distribuída – lei de Amdahl, GPUs e pipeline
ComputaçãoComputadores e hardwareIdades 16–17
Carregando…
Entre para usarDivida um trabalho em tarefas com uma fração paralela p e execute-o de forma sequencial em um núcleo, em paralelo em n núcleos ou distribuído entre computadores em rede, que primeiro precisam receber seus dados. Um diagrama de Gantt mostra o que cada núcleo faz, o gráfico de aceleração segue a lei de Amdahl S = 1/((1 − p) + p/n) e seu limite 1/(1 − p), e uma tabela registra suas execuções. A aba GPU aplica um filtro de imagem com poucos núcleos rápidos de CPU e muitos núcleos simples de GPU; a aba Pipeline mostra as etapas de busca, decodificação e execução sobrepostas, com uma parada causada por um conflito de dados.
Aula: Computação paralela e distribuída: tarefas sequenciais e paralelas, processadores multinúcleo, lei de Amdahl, aceleração e eficiência, custo de comunicação, GPUs, pipeline e conflitos de dados
O que mostra
A computação paralela executa partes de um programa ao mesmo tempo em vários núcleos; a distribuída divide o trabalho entre computadores de uma rede, que precisam trocar dados. Só a fração paralela p de um trabalho pode ser dividida, por isso a lei de Amdahl dá a aceleração S = 1/((1 − p) + p/n), que nunca passa de 1/(1 − p). Em sistemas distribuídos, o tempo de comunicação cresce com o número de computadores e pode fazer com que mais computadores deixem o trabalho mais lento. Uma GPU tem milhares de núcleos simples, adequados para a mesma operação sobre muitos dados. O pipeline sobrepõe as etapas de busca, decodificação e execução de instruções sucessivas.
Como usar
Na aba Paralela e distribuída, escolha o Modo, ajuste a Fração paralela p, o Número de núcleos n, as Tarefas e, no modo distribuído, Enviar dados por computador; clique em Executar para animar o diagrama de Gantt e em Adicionar à tabela para guardar o resultado. Na aba CPU e GPU, escolha a Tarefa e o número de núcleos da GPU e clique em Executar. Na aba Pipeline, escolha um Programa, ligue ou desligue o Pipeline e use Passo ou Reproduzir.
Parâmetros que você pode mudar
- Aba inicial Paralela e distribuída, CPU e GPU, Pipeline
- Modo Sequencial (1 núcleo), Paralelo (n núcleos), Distribuído (n computadores em rede)
- Fração paralela p 0–100 %
- Número de núcleos ou computadores n 1–32
- Número de tarefas paralelas 4–48
- Tempo para enviar dados a cada computador 0–5 s
- Número de núcleos da GPU 32, 64, 128, 256, 512
- Tarefa na aba GPU Filtro preto e branco (cada pixel independente), Desfoque encadeado (cada pixel precisa do anterior)
- Pipeline ligado
- Programa na aba Pipeline Sem dependências, Com conflito de dados, Conflito, instruções reordenadas
Perguntas para explorar
- Com p = 80%, por que passar de 16 para 32 núcleos quase não deixa o trabalho mais rápido?
- No modo distribuído, por que acrescentar computadores pode deixar o trabalho mais lento?
- Por que a GPU vence no filtro preto e branco, mas perde para a CPU no desfoque encadeado?