2. O processamento sequencial atende a maior parte das necessidades.
Porém algumas necessitam de maior poder de processamento.
Isso é conseguido através do Processamento Paralelo.
• Previsão do tempo
• Indústria Aeronáutica
• Pesquisas Médicas
3. IBM 704 (1954)
O IBM 704 foi o primeiro computador comercialmente disponível a fazer uso de aritmética
com pontos flutuantes automáticos.
4. Definição: É usar múltiplos (dois ou mais) processadores,
simultaneamente para resolver um mesmo problema.
Objetivo: Redução do tempo necessário para resolver um
problema (desempenho);
•Paralelismo de atividades diferentes e que precisam ser
realizadas em um tempo aceitável para a tomada de
decisões corretas.
Motivação: Problemas cada vez mais complexos e/ou
maiores;
•Clock dos processadores se aproximando dos limites
ditados pela física;
PROCESSAMENTO PARALELO
8. É uma entidade dinâmica, que altera seu estado a medida
que avança sua execução.
Assim, o processo é uma abstração que representa um
programa em execução.
PROCESSO
9. Programa em execução com um único fluxo de execução.
Em sistemas tradicionais, cada processo tem seu espaço de
endereçamento individual e apenas um fluxo de execução
(thread).
THREAD
11. Programa em execução com múltiplos fluxos de
execução.
Em sistemas paralelos, cada processo tem seu
espaço de endereçamento individual e vários fluxos
de execução no mesmo espaço de endereçamento.
THREADS
12. COMO É A NOSSA VISÃO TRADICIONAL
Computador é uma máquina sequencial;
Os problemas são resolvidos por sequências discretas de
instruções;
As instruções são executadas de forma serial;
15. Taxonomia de Flynn.
SISD – Single instruction Single Data MISD – Multiple Instruction Single Data
SIMD – Single Instruction Multiple Data MIMD – Multiple Instruction Multiple Data
17. Em máquinas SIMD, um programa também é uma sequência única de
instruções armazenadas em memória. Cada instrução é decodificada em seu
turno, indicado por um único registrador contador de programa, por uma
única unidade de controle.
SISTEMAS DE PROCESSAMENTO MATRICIAL
O programa SIMD é armazenado em uma memória de controle, que é também o
repositório inicial para os dados. Os dados que serão processados pelos PEs
(PE, de Processing Element) devem ser distribuídos a diversos elementos de
memória (ME).
ARQUITETURA BÁSICA
Todos PEs operam sincronamente, iniciando e concluindo a instrução ao
mesmo tempo. Cada PE tem seus registradores locais e pode executar
operações lógicas e aritméticas sobre os itens de dados de um arranjo.
PRINCÍPIO DE OPERAÇÃO
18. Uma estratégia de máquina SIMD é usar PEs cada vez mais simples e
numerosas, como forma de ampliar o potencial de paralelismo usando
elementos de processamento menos complexos.
PROCESSADORES BIT SLICE
• O ILLIAC IV (Illinois Array Computer) 1960 - foi o primeiro sistema SIMD de
ampla repercussão.
• GF-11 foi construído pela IBM no início da década de 1980, como um
protótipo de pesquisa voltado para a realização de cálculos numéricos em
cromodinâmica quântica.
• MPP (MassivelyParallel Processor) é um exemplo de máquina bit slice,
tendo sido construída pela Goodyear Aerospace no início da década de
1980.
EXEMPLOS
20. Fluxo Múltiplo de Instruções/Fluxo Múltiplo de Dado sé uma arquitetura
paralela composta de múltiplos processadores e múltiplos módulos de
memória, conectados via rede.
Eles são divididos em duas categorias: Memória compartilhada e Passagem
de mensagens.
ARQUITETURA SIMD
• É onde os processadores se comunicam através de leituras e escritas em
regiões de uma memória compartilhada que é igualmente acessada por
todos.
MODELO DE MEMÓRIA COMPARTILHADA
• Cada processador tem acesso a sua própria memória local. A comunicação
entre os processadores é feita através de um sistema de passagem de
mensagens, executada via operações de envio e recebimento de
mensagens em uma rede.
MODELO DE PASSAGEM DE MENSAGENS
21. A tecnologia multicore consiste em colocar mais de uma unidade de
execução (core ou núcleo) no interior de um único chip processador.
MULTICORE
• Maior eficácia do sistema e desempenho aprimorado de aplicativos em
computadores executando vários aplicativos simultaneamente
• Desempenho aprimorado para aplicativos multithreaded
• Compatibilidade para mais usuários ou tarefas em aplicativos com muitas
transações
• Desempenho superior em aplicativos que utilizam processamento de forma
intensiva
• Economia no preço de licenciamento de softwares proprietários, passando a
ter um maior poder de processamento sem necessitar de uma nova máquina
• Redução da dissipação térmica quando comparado ao Single-Core
PRINCIPAIS VANTAGENS DA ARQUITETURA MULTICORE
22. É a capacidade que o sistema operacional possui de executar várias
threads simultaneamente sem que uma interfira na outra. Estas threads
compartilham os recursos do processo, mas são capazes de ser
executadas de forma independente. Para possuir processamento
multithread “real”, os processadores precisam ser capazes de atender
duas ou mais threads ao mesmo tempo.
MULTITHREADING
• Multithreading convencional
• Single-Threaded CPU
• Single-Threaded SMP
• Hyper-threading
ELES SÃO DIVIDIDOS EM DUAS CATEGORIAS
23. Uma parte do que a CPU faz é ilusão. Por exemplo arquiteturas modernas de
processadores fora de ordem (OOE) não executam o código sequencialmente
na ordem em que foi escrito. A arquitetura OOE pega o código que foi escrito
e o compila para ser executado numa ordem especifica, reprogramando a
sequência de instruções (se possível) de modo que elas façam uso máximo
dos recursos do processador, executa, e então os organiza de volta a sua
ordem original de modo que os resultados possam ser escritos na memória
MULTITHREADING CONVENCIONAL
24. No diagrama, os retângulos
coloridos na RAM
representam instruções de quatro
programas diferentes em execução.
De acordo com a imagem, somente
as instruções do programa vermelho
estão sendo executados no
momento, enquanto o resto aguarda
pacientemente por seu turno na
memória até que a CPU
possa rapidamente virar sua
atenção a eles.
SINGLE-THREADED CPU
25. No diagrama acima, o
programa vermelho e o
processo amarelo estão
executando
simultaneamente, um em
cada processador.
Assim que seus respectivos
time slices estiverem
prontos, seus contextos
serão salvos, seus códigos
e dados serão limpos da
CPU, e dois novos
processos serão
preparados para execução.
SINGLE-THREADED SMP
26. Multithreading simultâneo
(simultaneousmultithreading –
SMT), também conhecido como
Hyper-threading, leva o
superthreading ao próximo nível.
Hyper-threading é simplesmente
o superthreading sem a restrição
de que todas as instruções
emitidas pelo Front end a cada
clock sejam da mesma thread.
HYPER-THREADING
29. O uso de caches grandes e de vários níveis pode reduzir substancialmente as
demandas de largura de banda de memória de um processador. Se essas demandas
são reduzidas, vários processadores podem compartilhar a mesma memória.
ARQUITETURA DE MEMÓRIA NO
PROCESSAMENTO PARALELO
ARQUITETURA DE MEMÓRIA COMPARTILHADA SIMÉTRICA
30. Máquinas de memória compartilhada podem ser divididas em
duas classes principais baseadas nos tempos de acesso à
memória:
• UMA
• NUMA.
ARQUITETURA DE MEMÓRIA COMPARTILHADA SIMÉTRICA
Figura representando várias CPU’s compartilhando a mesma memória
31. É uma arquitetura de memória compartilhada usada
em computadores paralelos. Todos os processadores no modelo
UMA compartilha a memória física de maneira uniforme.
MEMÓRIA DE ACESSO UNIFORME - UNIFORMMEMORY ACCESS (UMA)
32. É uma arquitetura de memória usada em projeto de multiprocessamento,
onde o tempo de acesso à memória depende da posição da memória em
relação ao processador.
MEMÓRIA DE ACESSO NÃO-UNIFORME - NON-UNIFORMMEMORY ACCESS
(NUMA)
33. NCC-NUMA - (Non-Cache-Coherent Non-Uniform Memory Access)
Acesso não-uniforme à memória sem coerência de cache;
CC-NUMA - (Cache-Coherent Non-Uniform Memory Access)
Acesso não uniforme à memória com coerência de cache;
SC-NUMA - (Software-Coherent Non-Uniform Memory Access)
Acesso não uniforme à memória com coerência de cache em software;
COMA - (Cache-Only Memory Architecture)
Arquiteturas de memória somente com cache
ESTA CLASSE DIVIDIDA SEGUNDO SEU TRATAMENTO DE COERÊNCIA
DE CACHE.
34. COMA - (CACHE-ONLY MEMORY ARCHITECTURE)
Neste caso, todas as memórias locais estão estruturadas como memória cache(C) e
são chamadas de COMA cachês, como mostra a figura abaixo.
35. Os processadores possuem sua própria memória local, não existindo
o conceito de espaço de endereçamento global entre todos os
processadores.
Requerem uma rede de comunicação para conectar memórias
interprocessadores.
MEMÓRIA DISTRIBUÍDA
36. As arquiteturas de memória híbrida possuem as características
comuns às duas anteriormente citadas.
Empregando tanto arquiteturas de memória compartilhada quanto
de memória distribuída.
ARQUITETURAS DE MEMÓRIA COMPARTILHADA DISTRIBUÍDA -
MEMÓRIA HÍBRIDA DISTRIBUÍDA/COMPARTILHADA – HYBRID
DISTRIBUTED-SHARED MEMORY
37. É o nome dado a um sistema que relaciona dois ou mais
computadores para que estes trabalhem de maneira conjunta no
intuito de processar uma tarefa.
Cada computador que faz parte do cluster recebe o nome de nó
(ou node).
CLUSTER
38. Clusters de alto desempenho são direcionados a aplicações bastante
exigentes no que diz respeito ao processamento. Sistemas utilizados em
pesquisas científicas, por exemplo.
CLUSTER DE ALTO DESEMPENHO
(HIGH PERFORMANCE COMPUTING CLUSTER)
CLUSTER DE ALTA DISPONIBILIDADE
(HIGH AVAILABILITY COMPUTING CLUSTER)
O foco está em sempre manter a aplicação em pleno funcionamento: não é
aceitável que o sistema pare de funcionar.
Para atender a esta exigência, os clusters de alta disponibilidade podem contar
com diversos recursos: ferramentas de monitoramento que identificam nós
defeituosos ou falhas na conexão
39. As tarefas de processamento são distribuídas o mais
uniformemente possível entre os nós. O foco aqui é fazer
com que cada computador receba e atenda a uma
requisição e não, necessariamente, que divida uma tarefa
com outras máquinas.
CLUSTER PARA BALANCEAMENTO DE CARGA
(LOADBALANCING)
COMBINAÇÃO DE TIPOS DE CLUSTERS
Conforme a necessidade pode-se combinar características
de tipos diferentes no intuito de atender plenamente à
aplicação.
40. Este nome faz referência a um padrão de clustering disponibilizado pela
NASA (National Aeronautics and Space Agency) em 1994 e amplamente
adotado desde então.
CLUSTER BEOWULF
CARACTERÍSTICAS:
Entre os nós, deve haver pelo menos um que atue como mestre
(chamadas de front-end) para exercer o controle dos demais (back-end).
41. • No bit(Bit Level)
• Paralelismo no nível de instrução(InstructionLevel)
• Taskparallelism - Paralelismo de Tarefas (Paralelismo de
Threads)
• Paralelismo de dados
MODOS DE PARALELISMO
42. A Lei de Amdahl
É uma das fórmulas que tenta explicar o
ganho obtido em uma aplicação ao
adicionar mais cores de processamento.
LEIS DE AMDAHL E GUSTAFSON
43. Quando executamos em
uma máquina paralela
com N processadores, o
tempo gasto será igual a:
LEIS DE AMDAHL E GUSTAFSON
O trecho paralelizável
terá partido dos “N”
processadores. O ganho
de processamento é
dado por:
44. Lei de Gustafson - parte do tempo de execução em
paralelo para estimar o speedup máximo comparado com
a execução sequencial. Com isso, Gustafson propôs a
seguinte formula:
LEIS DE AMDAHL E GUSTAFSON
G = N + (1 | | N) _ s