Tópicos em redes e sistemas distribuídos B Carlos Oberdan Rolim Ciência da Computação Arquiteturas computacionais Arquiteturas computacionais Taxonomia de Flynn: 1972 - 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 Streams Single Data Streams ): Fluxo único de instruções sobre um único conjunto de dados . Computadores sequenciais SIMD (Single Instruction Streams Multiple Data Streams ): Fluxo único de instruções em múltiplos conjuntos de dados .Computadores vetoriais e matriciais MISD (Multiple Instruction Streams Single Data Streams ): Fluxo múltiplo de instruções em um único conjunto de dados .Não existem computadores MIMD (Multiple Instruction Streams Multiple Data Streams ): Fluxo múltiplo de instruções sobre múltiplos conjuntos de dados. .Arquiteturas com múltiplos processadores independentes Classificação de Flynn SISD (Single Instruction Single Data) Não é um computador paralelo Uma instrução por fluxo Cada operação opera em um único dado Análogia Máquinas von Neumann tradicionais: microcomputadores pessoais e estações de trabalho Classificação de Flynn SIMD (Single Instruction Multiple Data) Tambem uma arquitetura de von Neumann architectures mas com instruções mais poderosas Cada instrução pode operar em mais de um elemento Dois tipos Vector SIMD Parallel SIMD Análogia Classificação de Flynn Vector SIMD Uma instrução resulta em multiplas operações de atualização Processamento escalar acontece em elementos de dados simples Examplos: Cray 1 NEC SX-2 Fujitsu VP Hitachi S820 Classificação de Flynn Paralell SIMD Arrays de processadores. Uma instrução é dada e todos os processadores executam a mesma instrução operando em conjuntos diferentes de dados Processadores rodam de forma sincrona Examplos: Connection Machine CM-2 Maspar MP-1, MP-2 Classificação de Flynn MISD (Multiple Instruction Single Data) !!!! Non ecziste!!!! Não existem exemplos práticos de implementação Classificação de Flynn MIMD (Multiple Instruction Multiple Data) Paralelismo alcançado pela coneão de multiplos processadores em conjunto Inclui todas as formas de configuração com multiprocessador Cada processador executa seu próprio conjunto de instruções independente dos outros processadores em um único fluxo de dados Exemplos: Multiprocessadores e multicomputadores: nCube, Intel Paragon, Cray T3D Análogia Multiprocessadores e multicomputadores MIMD Computadores Paralelos e Distribuídos Fortemente Acoplado Multiprocessadores (memória compartilhada) Barramento Switched Sequent, Encore Ultracomputer, RP3 Fracamente Acoplado Multicomputadores (memória privada) Barramento Estações de Trabalho Switched Transputer, Hypercube Multiprocessadores Baseado em barramento CPU CPU CPU cache cache cache Memória Multiprocessadores Baseado em switch M M M M C M C C M C C M C C M C crossbar switch omega switching network Multicomputadores Baseado em barramento Estação de Trabalho Estação de Trabalho Estação de Trabalho Memória Local Memória Local Memória Local CPU CPU CPU Rede Multicomputadores Baseado em switch grid hypercube Compartilhamento de memória Multiprocessadores (espaço de endereçamento único) UMA (uniform memory access) - memória central NUMA (non-uniform memory access) - memória distribuída COMA (cache-only memory architecture) CC-NUMA (cache-coherent non-uniform memory access) NCC-NUMA (non-cache-coherent non-uniform memory access) Multicomputadores (múltiplos espaços de endereçamento) NORMA (non-remote memory access) SC-NUMA (software-coherent non-uniform memory access) DSM (Distributed shared memory) Compartilhamento de memória UMA P P P P P Rede de Interconexão M Coerência de cache resolvida em HW. P P P Acesso Não-Uniforme à Memória (NUMA) NUMA Dois ou mais processadores compartilham a 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. 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 Acesso local mais rápido que acesso remoto Dois tipos: ncNUMA (NUMA sem cache) e ccNUMA (NUMA com cache) Compartilhamento de memória NUMA espaço de endereçamento M M M M M M M M P P P P P P P P Rede de Interconexão Compartilhamento de memória NORMA P P P P P P P P M M M M M M M M Rede de Interconexão Arquiteturas paralelas Serie: N módulos conectados um após o outro. Falha de um módulo ocasiona falha o sistema todo Paralelo: N módulos conectados entre si. O sistema falha somente se todos os módulos falharem