Arquitetura de computadores Prof. Edivaldo Serafim Curso: Tecnólogo em Análise e Desenvolvimento de Sistemas - 2013 IFSP – Campus Capivari
Processamento paralelo 19/06/2013
Visão geral Processamento paralelo Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013 Visão geral
Visão geral O computador tradicionalmente possui uma abordagem como uma máquina sequencial; Programador desenvolve algoritmos sequenciais; Processadores executam códigos sequenciais; Cada instrução possui uma sequencia de operações; Algumas técnicas tentam quebrar essa visão: Pipeline; Superpipeline; Superescalar; Surge novos enfoques em termos de paralelismo: Custo do hardware diminui a ponto de aglutinar: Várias CPUs (Multiprocessadores simétricos - SMP) , vários Computadores (clusters), e o conceito de NUMA; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013 Maquinas com Acesso Não-uniforme a Memória (NUMA)
Organizações de Múltiplos Processadores Processamento paralelo Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013 Organizações de Múltiplos Processadores
Tipos de sistemas com processadores paralelos SISD (Única Instrução, Único Dado): A unidade de controle (UC) fornece uma sequência de instruções para a unidade de processamento(UP); A UP opera sobre uma única sequência de dados (SD) de uma única unidade de memória (UM) Como exemplo podemos utilizar um sistema uniprocessado; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013 Single instruction single data
Tipos de sistemas com processadores paralelos SIMD (Única Instrução, Múltiplos Dados): A UC alimenta várias UP; Cada UP opera sobre uma única SD de uma UM; Como exemplo podemos utilizar os processadores vetoriais e matriciais; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013 Single instruction multiple data
Tipos de sistemas com processadores paralelos MIMD (Múltiplas Instruções, Múltiplos Dados): Há múltiplas UC, cada qual alimentando sua própria UC comum a SI diferente; A memória é compartilhada. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013 Multiple instruction multiple data
Tipos de sistemas com processadores paralelos MIMD (Múltiplas Instruções, Múltiplos Dados): Há múltiplas UC, cada qual alimentando sua própria UC comum a SI diferente; A memória é distribuída. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013 Multiple instruction multiple data
Tipos de sistemas com processadores paralelos MISD (Múltiplas instruções, Único dado): Os mesmos dados são mandados para um conjunto de UP diferente; Cada UP executa diferentes instruções sobre esses dados. Nunca fui implementado. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013 Multiple instruction single data
Tipos de sistemas com processadores paralelos Assim temos a seguinte classificação: Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Multiprocessamento simétrico Por um bom tempo os computadores pessoais possuíam um único processador de uso geral; Introdução do conceito de multiprocessamento simétrico, ou simplismente SMP (Symmetric multiprocessing) foi possível devido: Queda no custo do hardware; Demanda por maior desempenho; SMP pode ser designação tanto para a arquitetura de hardware quanto o comportamento do SO. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Características do sistema SMP As principais características de um sistema SMP são: Existem duas ou mais CPUs; As CPUs compartilham a mesma memória ou I/O; Todas as CPUs podem desempenhar as mesmas funções (por isso simétrico); O sistema é controlado por um SO integrado, que possibilita extrair o máximo de interação entre as CPUs. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Organização do sistema SMP Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013 Rede de interconexão pode ser entendido como Barramento Local!
Organização do sistema SMP A organização de um sistema multiprocessado pode ser de várias formas, mas as características mais comuns são: Tempo compartilhado ou barramento comum; Memória com múltiplas portas; Unidade de controle central. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Tempo compartilhado ou barramento comum: É o mecanismo mais simples de construção de um sistema multiprocessado; Muito semelhante ao sistema uniprocessado, pois utiliza o mesmo sistema de interconexão: Barramento de dados; Barramento e endereços; Barramento de controle. Os vários processadores competem pelo barramento e pela memória. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Tempo compartilhado ou barramento comum Vantagens: Simplicidade; Flexibilidade; Confiabilidade. Desvantagens: Desempenho relativamente ruim; Toda referência à memória passa pelo barramento; Alternativa de projeto: uso de memórias cache; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Tempo compartilhado ou barramento comum Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Memória com múltiplas portas É uma abordagem mais complexa para a memória que a de barramento compartilhada; Cada processador pode acessar a memória e módulos de I/O independentemente e de forma separada; Os acessos a cada porta são semelhantes ao sistema uniprocessado, não demandando muitas alterações no projeto da CPU, mas sim no projeto de memória; Cada processador tem um caminho dedicado para a memória; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Memória com múltiplas portas Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Unidade de Controle Central UC central comanda fluxos de dados distintos de e para módulos independentes: CPUs; Memórias e; I/O. Desempenha funções de arbitração e temporização; Passa mensagens de controle entre as CPUs e alertas sobre atualizações de cache; A logica de controle está centralizada na UC, portanto CPUs e memórias não tem o projeto alterados; A UC é mais complexa; Geralmente utilizada em computadores de grande porte; Não é utilizada atualmente. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
SO para SMP Um SO para SMP deve transparecer ao usuário a existência de múltiplos processadores; As tarefas de um SO para SMP são as mesmas de um sistema uniprocessado, mais as gerências de recursos para as várias CPUs; As principais tarefas de SO para SMP, além das tradicionais, são: Processos concorrentes simultâneos; Escalonamento; Sincronização; Gerência de memória; Confiabilidade e tolerância a falhas. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Clusters Processamento paralelo Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013 Clusters
Clusters Clusters são alternativas para o sistema SMP; Muito atrativos para uso como servidores de alto desempenho; Um Cluster é um grupo de computadores (ou nós) completos interconectados, que devem: Trabalhar em conjunto; Criar a ilusão de constituir uma única máquina. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Clusters Os principais benefícios (ou requisitos de projeto) são: Escalabilidade absoluta: Clusters grandes podem ultrapassar várias vezes a capacidade de computação de grandes computadores individuais. Escalabilidade incremental: É possível expandir o cluster colocando máquinas adicionais; Pode começar modesto, com poucas máquinas, sendo incrementado a medida que for necessário. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Clusters Continuação... os principais benefícios (ou requisitos de projeto) são: Alta disponibilidade: Computadores individuais podem ser inseridos ou removidos do sistema; Caso alguma máquina falhe, o sistema pode continuar operando, mesmo com baixo desempenho. Melhor relação custo/desempenho: Feito com máquinas relativamente baratas e de fácil acesso; Pode obter desempenho de um computador de grande porte. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Configuração dos Clusters Existem várias classificações para os clusters; A forma mais simples são aquelas de acesso aos discos; Todas as classificações possuem formas de troca de mensagens entre os nós para gerenciamento; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Configuração dos Clusters Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Questões de projetos Gerência de falhas: Recuperação de falhas (failover): Troca de aplicação e transferência de recursos de um sistema falho para outro em operação no cluster. Retorno de falhas (failback): Restabelecimento de aplicações e retorno de recursos para o sistema após as falhas; Balanceamento de carga: Importante durante o crescimento incremental do cluster; O cluster deve ter mecanismos automáticos para inclusão de novos nós, e escalonar os processos adequadamente; Deve possuir um middleware para reconhecer os serviços que possam ser migrados de um nó para outro. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013