A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas.

Apresentações semelhantes


Apresentação em tema: "Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas."— Transcrição da apresentação:

1 Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas e de Computação – ICMC SCE Arquitetura de Computadores

2 Conteúdo Processamento paralelo Computadores paralelos: taxonomia de Flynn Computadores paralelos: Multiprocessadores simétricos (SMPs) Acesso Não-Uniforme à Memória (NUMA) Agregados de computadores (Clusters)

3 Conteúdo Processamento paralelo Computadores paralelos: taxonomia de Flynn Computadores paralelos: Multiprocessadores simétricos (SMPs) Acesso Não-Uniforme à Memória (NUMA) Agregados de computadores (Clusters)

4 Processamento paralelo Definição: É usar múltiplos (dois ou mais) processadores, simultâneamente, para resolver um mesmo problema. Objetivo: Aumento de desempenho (i.e. redução do tempo necessário para resolver um problema) Motivação: (i) Problemas cada vez mais complexos e/ou maiores; (ii) Clock dos processadores se aproximando dos limites ditados pela física;

5 Conteúdo Processamento paralelo Computadores paralelos: taxonomia de Flynn Computadores paralelos: Multiprocessadores simétricos (SMPs) Acesso Não-Uniforme à Memória (NUMA) Agregados de computadores (Clusters)

6 Classificação dos computadores paralelos A classificação de Flynn (1972) é a mais utilizada. Ele se baseia nas possíveis unicidade e multiplicidade dos fluxos de instruções e de dados para definir quatro tipos de arquiteturas: SISD (Single Instruction Stream, Single Data Stream): computadores sequenciais SIMD (Single Instruction Stream, Multiple Data Streams): computadores vetoriais e matriciais MISD (Multiple Instruction Streams, Single Data Stream): não existem (HENNESSY et al., 2003; STALLINGS, 2002) MIMD (Multiple Instruction Streams, Multiple Data Streams): arquiteturas com múltiplos processadores independentes

7 Taxonomia de Flynn SISD Em arquiteturas SISD um único fluxo de instruções opera sobre um único fluxo de dados. Exemplo: PCs com um único processador UCEPM CPU FI FD

8 Taxonomia de Flynn SIMD Em arquiteturas SIMD um único fluxo de instruções opera sobre múltiplos fluxos de dados. Existe uma única UC e múltiplos EP. Todos os EP executam simultânea e sincronizadamente a mesma instrução sobre conjuntos de dados distintos. Exemplo: Computadores vetoriais UC EP1M1 EP2M2 EPnMn FI FD1 FD2 FDn

9 Taxonomia de Flynn MISD Em arquiteturas MISD múltiplos fluxos de instruções operam sobre um único fluxo de dados. Exemplo: Nunca foi implementada

10 Taxonomia de Flynn MIMD Na classe MIMD está a maioria das arquiteturas paralelas da atualidade. De acordo com o método de comunicação entre os processadores, a classe MIMD pode ser divida em: FI1 FD1 EP1 EP2 EP3 EPn FD2 FD3 FDn FI2 FI3 FIn UC1 UC2 UC3 UCn Mem ória com partil hada FI1 FD1 EP1 EP2 EP FD2 FD3 FDn FI2 FI3 FIn UC1 UC2 UC3 UCn Si stema deco m un ica çã o M1 M2 M3 MnMn EPn CPU MIMD compartilhadaMIMD distribuída CPU

11 Taxonomia de Flynn MIMD Atualmente, três tipos de arquiteturas MIMD são bastante utilizadas: Multiprocessador Simétrico (SMP) arquitetura MIMD com memória compartilhada Acesso Não-Uniforme à Memória (NUMA) arquitetura MIMD com memória compartilhada Agregado de Computadores (Cluster) arquitetura MIMD com memória distribuída

12 Conteúdo Processamento paralelo Computadores paralelos: taxonomia de Flynn Computadores paralelos: Multiprocessadores simétricos (SMPs) Acesso Não-Uniforme à Memória (NUMA) Agregados de computadores (Clusters)

13 Multiprocessadores simétricos Definição: Consiste de múltiplos processadores similares conectados entre si e à memória por um barramento ou alguma outra forma de circuito de conexão interno. CPU Interconexão Memória Diagrama de blocos de um SMP

14 Possuem dois ou mais processadores similares, com capacidade de processamento comparável; Todos os processadores compartilham uma mesma memória (i.e. existe um único espaço de endereçamento); Todos os processadores compartilham acesso aos mesmos dispositivos de E/S, através de canais comuns, ou não; O sistema inteiro é controlado por um único sistema operacional que torna transparente ao usuário a existência de vários processadores. Windows e Linux estão preparados para rodar em sistemas SMP. Multiprocessadores simétricos Características:

15 Todos os processadores podem desempenhar as mesmas funções; O tempo de acesso tomado por um processador para o acesso a qualquer posição de memória é o mesmo, e ainda, todos os processadores experimentam o mesmo tempo de acesso à memória (i.e., é uma arquitetura UMA - Uniform Memory Access). Multiprocessadores simétricos Características (continuação):

16 Multiprocessadores simétricos Esquema simplificado do SMP Sun Enterprise Server (CULLER, 1999) Exemplo: SMP Sun Enterprise Server

17 Multiprocessadores simétricos Esquemas de interconexão CPU Interconexão Memória Diagrama de blocos de um SMP - Barramento - Crossbar - Redes MultiEstagio

18 Multiprocessadores simétricos - Esquemas de interconexão Barramento de Tempo Compartilhado CPU Barramento de tempo compartilhado Memória SMP com barramento de tempo compartilhado

19 Multiprocessadores simétricos - Esquemas de interconexão Barramento de Tempo Compartilhado Estruturas e interfaces são praticamente as mesmas de um uniprocessador Mecanismo de Tempo Compartilhado Limitado a 2 ou 3 processadores, pois o barramento se torna um gargalo Características:

20 Multiprocessadores simétricos - Esquemas de interconexão Barramento de Tempo Compartilhado CPU Barramento compartilhado Memória SMP com barramento de tempo compartilhado e CPUs com cache cache Uso de cache melhora o tráfego no barramento e possibilita o uso de mais processadores.

21 CPU cache palavrabloco Relacionamento CPU, cache e memória RAM Memória Principal Load (1000) Multiprocessadores simétricos - Esquemas de interconexão Barramento de Tempo Compartilhado Características como localidade espacial e/ou temporal nos dizem que um programa tende a referenciar endereços de memória próximos em um intervalo de tempo, reduzindo significativamente o acesso a memoria principal.

22 Multiprocessadores simétricos - Esquemas de interconexão Barramento de Tempo Compartilhado Mais processadores podem ser utilizados: 16 ou 32 (TANENBAUM; GOODMAN, 1999). Problema de coerência de cache Conseqüências do uso de cache em SMPs:

23 Multiprocessadores simétricos – Barramento de tempo compartilhado Coerência de Cache Acontece porque podem existir várias cópias de um mesmo dado nas caches de diferentes processadores. Um processador pode alterar um dado na sua cache tornando o conteúdo das memórias caches dos outros processadores incoerente/inválido; Problema de coerência de cache: Existem soluções implementadas em software (ex: sistema operacional e/ou compilador) e em hardware (= mais comuns). Solução:

24 Multiprocessadores simétricos – Barramento de tempo compartilhado Coerência de Cache em hardware Protocolos de diretório; Protocolos de monitoração (snoopy protocols). Existem duas categorias de soluções:

25 Multiprocessadores simétricos – Barramento de tempo compartilhado Protocolos de diretório Funcionam com a utilização de um diretório e um controlador central. CPU 1 Barramento Memória Controlador CPU 2 CPU 3 CPU 4 Blocos Load (1000) Diretório 1

26 Multiprocessadores simétricos – Barramento de tempo compartilhado Protocolos de diretório Funcionam com a utilização de um diretório e um controlador central. CPU 1 Barramento Memória CPU 2 CPU 3 CPU 4 Blocos Load (1000) Diretório 13 Controlador

27 Multiprocessadores simétricos – Barramento de tempo compartilhado Protocolos de diretório Funcionam com a utilização de um diretório e um controlador central. CPU 1 Barramento Memória CPU 2 CPU 3 CPU 4 Blocos Load (1005) Diretório 132 Controlador

28 Multiprocessadores simétricos – Barramento de tempo compartilhado Protocolos de diretório Funcionam com a utilização de um diretório e um controlador central. CPU 1 Barramento Memória CPU 2 CPU 3 CPU 4 Blocos Store (1005) Diretório 132 Controlador

29 Multiprocessadores simétricos – Barramento de tempo compartilhado Protocolos de diretório Funcionam com a utilização de um diretório e um controlador central. CPU 1 Barramento Memória CPU 2 CPU 3 CPU 4 Blocos Diretório 2 Controlador

30 Multiprocessadores simétricos – Barramento de tempo compartilhado Protocolos de diretório Observação: Abordagens baseadas em diretórios resolvem o problema de coerência de cache, porém, causam grande sobrecarga no sistema, já que a comunicação entre os processadores e o controlador central tem que ocorrer freqüentemente.

31 Multiprocessadores simétricos – Barramento de tempo compartilhado Protocolos de monitoração Características: São protocolos onde todos os processadores participam ativamente para resolver o problema da coerência de cache. Para isso todos os processadores devem ficar monitorando o tráfego no barramento e atualizar o estado em que se encontra um determinado dado em sua cache. Por exemplo: quando um processador alterar um dado em sua cache, ele deve enviar um broadcast para o barramento informando que o dado foi alterado. Os processadores que tem aquele dado devem reagir de forma adequada para manter a coerência.

32 Multiprocessadores simétricos – Barramento de tempo compartilhado Protocolos de monitoração A coerência pode ser mantida de duas formas: Escrita com atualização (write-update): Quando um processador altera um dado em sua cache, tal dado é enviado para todos os outros processadores, para que estes atualizem os dados de suas caches. Escrita com invalidação (write-invalidate): Quando um processador altera um dado em sua cache, ele manda uma mensagem por broadcast com a finalidade de invalidar esse mesmo dado contido em outras caches. Dessa forma o processador que deseja alterar o dado, fica com acesso exclusivo ao mesmo, podendo assim fazer as alterações desejadas. O MESI (Modified, Exclusive, Shared and Invalide) é um exemplo de tal protocolo.

33 Multiprocessadores simétricos – Barramento de tempo compartilhado Protocolo MESI Modificado (M): O dado na cache não é igual ao dado na memória principal e encontra-se somente nesta cache. Exclusivo (E): O dado na cache é igual ao dado na memória principal e encontra-se somente nesta cache. Compartilhado (S): O dado na cache é igual ao dado na memória, porém encontra-se em outra(s) cache(s). Inválido (I): O dado na cache não é um dado válido. Definição: Esse protocolo determina 4 estados possíveis para um dado em cache. Para isso utiliza 2 bits adicionais por linha de cache para armazenar o estado. Os 4 estados são:

34 Multiprocessadores simétricos – Barramento de tempo compartilhado Protocolo MESI Exemplo: A CPU 1 lê/escre um endereço de memória. Assim, o bloco que contém este endereço é armazenado na sua cache e marcado como E (as próximas leituras a endereços de memória deste bloco, pela CPU 1, serão satisfeitas pelo acesso a cache, sem o uso do barramento); CPU 1 Barramento Memória CPU 2 CPU 3 CPU 4 E Load (1005)

35 Multiprocessadores simétricos – Barramento de tempo compartilhado Protocolo MESI CPU 1 Barramento Memória CPU 2 CPU 3 CPU 4 E Load (1005) Exemplo: A CPU 2 referencia um endereço do mesmo bloco. Assim, este bloco é copiado para a cache desta CPU. Neste caso, o bloco em ambas as cache é marcado como S, o que significa que a memória está atualizada e que ambas as CPUs podem ter suas requisições a endereços deste bloco atendidas pelas respectivas caches;

36 Multiprocessadores simétricos – Barramento de tempo compartilhado Protocolo MESI CPU 1 Barramento Memória CPU 2 CPU 3 CPU 4 S Load (1005) S Exemplo: A CPU 2 referencia um endereço do mesmo bloco. Assim, este bloco é copiado para a cache desta CPU. Neste caso, o bloco em ambas as cache é marcado como S, o que significa que a memória está atualizada e que ambas as CPUs podem ter suas requisições a endereços deste bloco atendidas pelas respectivas caches;

37 Multiprocessadores simétricos – Barramento de tempo compartilhado Protocolo MESI CPU 1 Barramento Memória CPU 2 CPU 3 CPU 4 S Store (1005) S CPU2: Sinaliza alteração Exemplo: A CPU 2 escreve na cache, no bloco compartilhado. Neste caso, ela coloca um sinal nas linhas de controle do barramento dizendo às outras CPUs que descartem suas cópias. O estado do bloco na CPU 2 é alterado para M. A CPU 2 pode agora ler e escrever neste bloco porque só ela o possui;

38 Multiprocessadores simétricos – Barramento de tempo compartilhado Protocolo MESI CPU 1 Barramento Memória CPU 2 CPU 3 CPU 4 M Exemplo: A CPU 2 escreve na cache, no bloco compartilhado. Neste caso, ela coloca um sinal nas linhas de controle do barramento dizendo às outras CPUs que descartem suas cópias. O estado do bloco na CPU 2 é alterado para M. A CPU 2 pode agora ler e escrever neste bloco porque só ela o possui; Store (1005)

39 Multiprocessadores simétricos – Barramento de tempo compartilhado Protocolo MESI CPU 1 Barramento Memória CPU 2 CPU 3 CPU 4 Load (1007) M Exemplo: A CPU 3 solicita um endereço do mesmo bloco. A CPU 2 detecta este evento e sabendo que a cópia da memória é inválida, coloca sinais no barramento dizendo a CPU 3 que aguarde. CPU2: Sinais de controle

40 Multiprocessadores simétricos – Barramento de tempo compartilhado Protocolo MESI CPU 1 Barramento Memória CPU 2 CPU 3 CPU 4 M Exemplo: Enquanto a CPU 3 aguarda ela escreve de volta para a memória principal o bloco que foi modificado em sua cache. Load (1007) - aguardando Write back

41 Multiprocessadores simétricos – Barramento de tempo compartilhado Protocolo MESI CPU 1 Barramento Memória CPU 2 CPU 3 CPU 4 Exemplo: Enquanto a CPU 3 aguarda ela escreve de volta para a memória principal o bloco que foi modificado em sua cache. Load (1007) - aguardando M Write back

42 Multiprocessadores simétricos – Barramento de tempo compartilhado Protocolo MESI CPU 1 Barramento Memória CPU 2 CPU 3 CPU 4 Exemplo: Finalizado o processo (write-back) ambas as CPUs obtêm uma cópia deste bloco de memória em sua cache; ambas o marcam como S e podem utilizá-lo; SS Load (1007) - aguardando

43 Multiprocessadores simétricos – Barramento de tempo compartilhado Protocolo MESI CPU 1 Barramento Memória CPU 2 CPU 3 CPU 4 Exemplo: Finalizado o processo (write-back) ambas as CPUs obtêm uma cópia deste bloco de memória em sua cache; ambas o marcam como S e podem utilizá-lo; SS Load (1007) – é executado

44 Multiprocessadores simétricos - Esquemas de interconexão Crossbar CPU 01 CPU 02 CPU 03 CPU 16 Sistema C.mpp: rede crossbar (16 proc. PDP11 e 16 módulos de memória) (HWANG, 1993)

45 Multiprocessadores simétricos - Esquemas de interconexão Crossbar CPUs são ligadas aos módulos de memórias por meio de crosspoints (switches que são eletronicamente abertos/fechados para conectar um par processador-memória); Acessos à memória em paralelo, desde que para módulos de memória distintos; Características:

46 Multiprocessadores simétricos - Esquemas de interconexão Crossbar CPU 01 CPU 02 CPU 03 CPU 16 Sistema C.mpp: rede crossbar (16 proc. PDP11 e 16 módulos de memória) (HWANG, 1993) Na rede Crossbar da figura, até 16 acessos à memória podem acontecer simultaneamente.

47 Multiprocessadores simétricos - Crossbar Crosspoints Diagrama de um crosspoint

48 Multiprocessadores simétricos - Esquemas de interconexão Crossbar Embora seja possível construir SMPs com um número grande de processadores, na prática isto não acontece porque o custo de construção é muito algo (porque crosspoints são complexos e o número de crosspoints cresce quadraticamente); Observações:

49 Multiprocessadores simétricos - Esquemas de interconexão Redes multiestágio Rede multiestágio Omega (switches 2x2) CPU 01CPU 02CPU 03CPU 04CPU 05CPU 06CPU 07CPU 08

50 Multiprocessadores simétricos - Esquemas de interconexão Redes multiestágio São construídas a partir de switches A B, ou seja, switches com A entradas e B saídas; Diferentes tipos/classes de redes multiestágio podem ser construídas. O que varia de uma classe para a outra é o tipo de switch utilizado e o padrão de conexão entre os estágios; a rede do slide anterior utiliza switches 22 e um padrão de conexão conhecido como perfect shuffle (ALMASI; GOTTLIEB, 1994; HWANG, 1993; TANENBAUM; GOODMAN, 1999) Características:

51 Multiprocessadores simétricos - Esquemas de interconexão Redes multiestágio Exemplo: Assumiremos um sistema com 512 MB de RAM (= endereços de 29 bits) divididos em 8 módulos de memória (= módulos de 64 MB). Portanto, os 3 primeiros bits especificam o módulo de memória, os outros 26 especificam um endereço dentro do módulo. CPU 01CPU 02CPU 03CPU 04CPU 05CPU 06CPU 07CPU 08 Rede multiestágio Omega

52 Multiprocessadores simétricos - Esquemas de interconexão Redes multiestágio Exemplo: CPU 03 executa instrução LOAD ( ), i.e., para um endereço que está contido no módulo 110. Load 110 CPU 01CPU 02CPU 03CPU 04CPU 05CPU 06CPU 07CPU 08 Rede multiestágio Omega

53 Multiprocessadores simétricos - Esquemas de interconexão Redes multiestágio Exemplo: O switch 1C verifica o 1º digito do campo módulo (um switch no 1º estágio da rede verifica o 1º dígito do campo módulo), neste caso 1. Um valor 1 indica que a requisição de leitura deve prosseguir pela saída inferior do switch, neste caso indo para o switch 2B. 110 CPU 01CPU 02CPU 03CPU 04CPU 05CPU 06CPU 07CPU Rede multiestágio Omega

54 Multiprocessadores simétricos - Esquemas de interconexão Redes multiestágio Exemplo: O switch 2B, no estágio 2 da rede, analisa o segundo dígito do campo módulo, que também é 1, e a requisição prossegue através do switch 3D. 110 CPU 01CPU 02CPU 03CPU 04CPU 05CPU 06CPU 07CPU Rede multiestágio Omega

55 Multiprocessadores simétricos - Esquemas de interconexão Redes multiestágio Exemplo: O switch 3D, no estágio 3 da rede, verifica o terceiro dígito do campo módulo, que é 0 (zero). Um valor 0 indica que a operação deve prosseguir pela a saída superior do switch. Então, o módulo 110 é alcançado. 110 CPU 01CPU 02CPU 03CPU 04CPU 05CPU 06CPU 07CPU Rede multiestágio Omega

56 Multiprocessadores simétricos - Esquemas de interconexão Redes multiestágio Para a construção da rede anterior foram utilizados 12 switches (para uma rede n n utilizam-se log 2 n estágios e n/2 switches por estágio, num total de (log 2 n) * n/2 switches). Para a construção de uma rede crossbar seriam necessários n 2 switches. A desvantagem de uma rede multiestágio em relação à crossbar, é que nem sempre dois acessos podem ocorrer em paralelo, mesmo que sejam para módulos diferentes. Observações:

57 Conteúdo Processamento paralelo Computadores paralelos: taxonomia de Flynn Computadores paralelos: Multiprocessadores simétricos (SMPs) Acesso Não-Uniforme à Memória (NUMA) Agregados de computadores (Clusters)

58 NUMA Definição: Assim como em SMPs, neste tipo de arquitetura existem dois ou mais processadores, que compartilham uma memória global (= um único espaço de endereçamento). Em um sistema NUMA os processadores são organizados em nós. Cada nó possui 1 ou mais processadores, com sua(s) própria(s) memória(s) cache (um, dois, ou mais níveis) e alguma memória principal conectados por um barramento ou outro sistema de interconexão.

59 NUMA Diagrama de uma arquitetura NUMA

60 NUMA Características: A principal característica de uma arquitetura NUMA é o acesso não uniforme à memória, ou seja, embora todos os processadores possam acessar todas as posições de memória, os tempos de acesso variam de acordo com o endereço acessado. O acesso a uma posição de memória local (memória no mesmo nó do processador que está realizando o acesso) é mais rápido do que o acesso a uma posição de uma memória remota. Assim, o sistema operacional de uma máquina NUMA deveria, sempre que possível, escalonar as threads de um processo entre os processadores do nó da memória usada pelo processo.

61 NUMA Características (continuação): O programador usando uma arquitetura NUMA também deveria explorar a localidade. O sistema operacional Windows, por exemplo, oferece uma série de funções através da API Win32 para programação em sistemas NUMA.

62 NUMA Existem dois tipos de arquiteturas NUMA: NC-NUMA NUMA que não utiliza cache CC-NUMA (Cache Coherent NUMA) NUMA com cache (e coerência de cache)

63 NC-NUMA NC-NUMA Carnegie-Mellon Cm Exemplo: Uma das primeiras máquinas NC-NUMA foi a Carnegie-Mellon Cm. Era composta por uma coleção de CPUs LSI-11 (uma versão em chip único do PDP-11), cada uma com uma memória acessível diretamente através de um barramento local. Os nós eram interconectados por um barramento de sistema.

64 NC-NUMA NC-NUMA Carnegie-Mellon Cm Exemplo: A MMU em cada referência à memória verificava se o endereço pertencia à memória local. Se sim, a requisição era feita à memória local, via barramento local. Caso contrário era feita ao nó remoto, através do barramento de sistema.

65 NC-NUMA A coerência dos dados em máquinas NC-NUMA é garantida porque não existe caching; Porém, um dado no lugar errado gera muitas penalidades. Se forem feitas três referências seguidas a uma posição de memória remota, são necessárias três buscas através do barramento de sistema. Para amenizar este problema, usam-se esquemas implementados em software. Por exemplo: um daemon pode fazer estatísticas de uso do sistema. Se for verificado que uma página parece estar no lugar errado, ele remove esta página da memória para que da próxima vez ocorra uma page fault ela possa ser alocada em um novo nó. Observações:

66 CC-NUMA Um sistema NUMA com coerência de cache é chamado CC- NUMA. A existência de cache requer algum protocolo de coerência. O método mais popular para a coerência de cache em sistema CC-NUMA é baseado no conceito de diretório. O diretório funciona como uma espécie de banco de dados que indica a localização das várias porções de memória, assim como o status das caches.

67 CC-NUMA Diagrama de um sistema CC-NUMA Exemplo: A figura abaixo ilustra um sistema CC-NUMA com 256 nós, 1 processador por nó, 16 MB por nó (256 x 16 = 4GB RAM = endereços de 32 bits). A memória dos nós é acessada em blocos de 64 bytes. 0 – 16 MB16 – 32 MB

68 CC-NUMA Coerência baseada em diretórios Mem. 16 MB Bloco 0 Bloco 1 64 bytes Diretório Bloco Bloco nó (8 bits) NÓ

69 (1)CPU 20 executa a instrução LOAD 0x (2)MMU converte endereço lógico em físico. Nó Bloco/Linha de CacheOffset 8 bits18 bits6 bits 3648 (3) Verifica sua memória cache (4) Não encontrando envia requisição para nó 36 solicitando bloco 4 CC-NUMA Coerência baseada em diretórios

70 Diretório nó 36 Bloco nó (8 bits) 82 (5) Hardware do nó 36 verifica diretório (6) Entrada do bloco 4 vazia, portanto, ele não se encontra em cache (7) Hardware do diretório 36 envia o bloco 4 à CPU 20 e atualiza o diretório 20 CC-NUMA Coerência baseada em diretórios

71 Diretório nó 36 Bloco nó (8 bits) 82 (1)CPU 45 requisita leitura do bloco 4 do nó 36 (2) Hardware do nó 36 verifica que o bloco está na cache do nó 20 (3) Hardware do diretório envia requisição ao nó 20 solicitando que envie o bloco 4 ao nó 45 (4) Hardware atualiza entrada do bloco 4 indicando que agora está na cache do nó CC-NUMA Coerência baseada em diretórios

72 Conteúdo Processamento paralelo Computadores paralelos: taxonomia de Flynn Computadores paralelos: Multiprocessadores simétricos (SMPs) Acesso Não-Uniforme à Memória (NUMA) Agregados de computadores (Clusters)

73 Definição: É um grupo de computadores completos/autônomos (usualmente chamados nós) interconectados, que podem trabalhar juntos, como um recurso de computação unificado, criando a ilusão de uma máquina única. Os nós são geralmente conectados através de uma porta de E/S (geralmente interfaces de rede) de alto desempenho. Atualmente eles são utilizados com sistemas gerenciadores de bancos de dados, com servidores WEB e, principalmente, para proc. paralelo. Cluster do Grupo de Instrumentação e Informática do IFSC-USP

74 Agregados de computadores (Clusters) Características: Configuração dos nós: Os nós podem ser PCs ou mesmo SMPs (neste caso ele é chamado um cluster de SMPs); Escalabilidade absoluta: É possível construir clusters muito grandes, cuja capacidade de computação ultrapassa várias vezes a capacidade da maior máquina individual; Escalabilidade incremental: Um cluster pode ser configurado de maneira que seja possível adicionar novos nós, expandindo-o de forma incremental; Disponibilidade: Como cada nó de um cluster é um computador independente, uma falha em um nó não implica necessariamente na perda total de serviço.

75 Agregados de computadores (Clusters) Características (continuação): Melhor Relação custo/desempenho: devido à facilidade de construir um cluster a partir de elementos (PCs ou SMPs) comercialmente disponíveis, é possível obter um cluster com poder de computação igual ou maior que uma única máquina paralela de grande porte, por um custo muito menor. A relação custo/benefício tem influenciado pesadamente a utilização dos clusters. Os Beowulfs são clusters compostos por microcomputadores de baixo custo (padrão IBM/PC) interligados por uma rede como Fast Ethernet e/ou Gigabit Ethernet, rodando um s.o. livre; é uma ótima opção para instituições que precisam de desempenho, mas não têm recursos suficientes para comprar uma única máquina com vasto poder de processamento nem um cluster pronto de algum fabricante ou integrador de soluções.

76 Agregados de computadores (Clusters) Clusters podem ser utilizados de diversas formas: Pode-se desenvolver aplicações específicas para resolver problemas de maneira concorrente que cuidam de todos os aspectos de processamento, balanceamento de carga, comunicação e sincronização. Para isto são utilizadas várias linguagens de programação e extensões/bibliotecas concorrentes como MPI, HPF (High Performance Fortran) e outros. Po de ser utilizado como um recurso único, de maneira transparente para os usuários. Para isto, é necessário a utilização de escalonadores que cuidam da distribuição de carga entre os servidores. Dentre estes escalonadores destacam-se o OpenMosix. O OpenMosix é um kernel capaz de distribuir os processos em execução entre o nós do cluster (ele mantém estatísticas sobre o balanço de carga dos nós e, se necessário faz a migração de processos entre os nós)

77 A escolha de uma rede depende entre outros fatores: Agregados de computadores (Clusters) Redes de interconexão Capital disponível; Do tipo de aplicação que será executada no cluster. Aplicações badwidth-bound necessitam de redes de alto desempenho (ex: Myrinet). Aplicações CPU-bound podem utilizar redes mais lentas (ex: Fast Ethernet);

78 Alguns tipos/padrões de redes utilizados: Agregados de computadores (Clusters) Redes de interconexão 10.7 MB/s89.8 usec3Com 3C905B 33MHz 32bit PCI, P2 400MHz, Intel 440BX, Linux MB/s34.2 usecIntel PRO1000/T Gigabit Ethernet on 66MHz 64bit PCI P3 800MHz, Serverworks ServerSet III HE, Linux MB/s14.6 usecInfiniBand 4x Fujitsu HCA on 133 MHz 64bit PCI-X Xeon 2.8GHz, Serverworks GC-LE, Linux MB/s8.3 usecMyrinet 2XP Fiber on 133 MHz 64bit PCI-X Xeon 2.8GHz, ServerWorks GC-LE, Linux Largura de banda LatênciaRede Fonte:

79 ALMASI, G. S.; GOTTLIEB, A. Highly parallel computing. 2ed. Redwood City: Benjamin/Cummings, CULLER, D. E.; SINGH, J. P.; GUPTA, A. Parallel computer architecture: a hardware/software approach. San Francisco: Morgan Kaufmann Publishers, c1999. FLYNN, M. J. Some Computer Organizations and Their Effectiveness. IEEE Transactions on Computers, v.C-21, n.9, p , Set HWANG, K. Advanced computer architecture: parallelism, scalability, programmability. New York: Mcgraw-Hill, TANENBAUM, A. S.; GOODMAN, J. R. Structured computer organization. 4ed. Upper Saddle River, N.J.: Prentice Hall, c1999. Bibliografia


Carregar ppt "Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas."

Apresentações semelhantes


Anúncios Google