• Nenhum resultado encontrado

apresentacao aula 6 04 05 20

N/A
N/A
Protected

Academic year: 2021

Share "apresentacao aula 6 04 05 20"

Copied!
68
0
0

Texto

(1)

ORGANIZAÇÃO EM REDES

DE COMPUTADORES

Prof André Fernando Treff

(2)

Arquitetura de computadores com paralelismo

As Arquiteturas de Computadores com

Paralelismo surgiram com o objetivo de aumento do desempenho dos computadores e devido ao ao fato de que, a limitação de um único processador não poder aumentar indefinidamente seus recursos computacionais,

(3)

Arquitetura de computadores com paralelismo

Como por exemplo a frequência ou pela limitação da miniaturização dos circuitos, daí a busca por paralelismo em outros níveis da arquitetura de um computador que não somente pela alteração do processador.

(4)

Arquitetura de computadores com paralelismo

Assim o paralelismo pode ser pensado para ser introduzido em vários níveis:

➢ Paralelismo por Múltiplas CPUs; ➢ Paralelismo a nível de CHIP;

➢ Adição de processadores especializados; ➢ Multiprocessadores;

(5)

Paralelismo com Processamento de Multiplas CPUs

Uma das estratégias de Arquitetura com paralelismo foi introduzir o paralelismo com soluções de processamento de múltiplas CPUs. Esta abordagem consideradas o acoplamento das CPUS como importante, tendo portanto

as duas possibilidades de processamento

(6)

Paralelismo com Processamento de Multiplas CPUs

• As CPUs Fortemente aclopadas – devido a proximidade das CPUs. É o caso de sistemas multicore os quais possuem mais de um núcleo, CPU que estão contudo no mesmo hardware, portanto fortemente acoplados. • As CPUs Fracamente aclopadas – devido a distância entre CPUs. É o caso de computação em grid onde temos vários computadores independentes que são interligados por uma ou mais redes e que trabalham colaborativamente para atender a um processamento específico.

(7)

Paralelismo com Processamento de Multiplas CPUs

Computação em GRID é um modelo computacional

capaz de alcançar uma alta taxa de processamento dividindo as tarefas entre diversas máquinas, podendo ser em rede local ou rede de longa distância, que formam uma máquina virtual. Esses processos podem ser executados no momento em que as máquinas não estão sendo utilizadas pelo usuário, assim evitando o desperdício de processamento da máquina utilizada.

(8)

Paralelismo por CHIP

Um modo de aumentar a produtividade de CHIP é

conseguir que ele faça várias tarefas ao mesmo tempo. Duas técnicas são utilizadas:

• Multithreading - É a capacidade de um programa ou de um processo de sistema operacional para gerenciar o seu uso por mais de um usuário ao mesmo tempo e até mesmo gerenciar vários pedidos pelo mesmo usuário sem ter que ter várias cópias da programação em execução no

(9)

Paralelismo por CHIP

Multicore - Um processador multi-core é um componente

de computação único com duas ou mais unidades centrais de processamento que atuam de forma independente

(chamados "núcleos" ), que são as unidades que ler e executar as instruções do programa .

Os múltiplos núcleos pode executar várias instruções ao mesmo tempo , aumentando a velocidade geral para

(10)

Paralelismo por CHIP

Processadores foram originalmente desenvolvidos com apenas um núcleo . Os processadores multi -core foram desenvolvidos no início de 2000 pela Intel , AMD e

(11)

Paralelismo a nível de instrução (Pipeline)

O paralelismo de instrução é baseado na execução

simultânea de mais de uma instrução pela CPU, sendo cada instrução em um estágio diferente do ciclo de instruções.

(12)

Paralelismo a nível de instrução (Pipeline)

Maximização da performance do computador:

➢ Aumento da taxa de execuções de instruções por segundo;

➢ Fazer com que o processador realize atividades em paralelo(paralelismo).

Paralelismo ou Pipeline é a técnica de dividir a execução da instrução em várias partes, e cada uma será manipulada por uma parte específica do processador.

(13)

Paralelismo por Software

É possivel executar um programa com capacidade de dividir uma tarefa em pequenas partes e executá-las em paralelo.

Como por exemplo diversos cálculos matemáticos ou até mesmo atender a requisição de vários clientes, sem que seja necessário formar uma fila de processamento.

(14)

Paralelismo por Software

Técnicas utilizadas:

• Threads - Uma thread ou linha de execução ou ainda fio de execução é a menor seqüência de instruções

programadas que podem ser gerenciados de forma independente por um sistema operacional.

A implementação de threads e processos difere de

um sistema operacional para outro, mas na maioria dos casos, um segmento está contido dentro de um processo.

(15)

Paralelismo por Software

Vários segmentos podem existir dentro do mesmo processo e compartilhar recursos, como

memória, enquanto diferentes processos não compartilham desses recursos.

Em particular, as threads de um processo compartilham as instruções deste último (seu código) e seu contexto (os

valores que suas variáveis ​​fazem referência a qualquer momento)

(16)

Paralelismo por Software

• Processos filhos (fork)- É uma técnica de cria um novo processo através da duplicação de um processo existente. O novo processo, conhecido como filho, é uma cópia exata do processo de chamada, conhecido como o pai. O processo filho tem um conjunto próprio de recursos de memória, PID, tempos de CPU, entre outros atributos como bloqueios.

(17)

Conjuntos de Instruções

O projeto do Conjunto de Instruções inicia com a escolha de uma entre duas abordagens, a abordagem RISC e a CISC.

O termo RISC é a abreviação de Reduced Instruction Set

Computer, ou Computador de Conjunto de Instruções

Reduzido e

CISC vem de Complex Instruction Set Computer, ou Computador de Conjunto de Instruções Complexo

(18)

Conjuntos de Instruções

Um computador RISC parte do pressuposto de que um conjunto simples de instruções vai resultar numa Unidade de Controle simples, barata e rápida.

Já os computadores CISC visam criar arquiteturas complexas o bastante a ponto de facilitar a construção dos

compiladores, assim, programas complexos são compilados em programas de máquina mais curtos.

Com programas mais curtos, os computadores CISC

precisariam acessar menos a memória para buscar instruções e seriam mais rápidos.

(19)

Conjuntos de Instruções

A Tabela “Arquiteturas RISC x CISC” resume as principais características dos computadores RISC em comparação com os CISC.

Os processadores RISC geralmente adotam arquiteturas mais simples e que acessam menos a memória, em favor do acesso aos registradores.

A arquitetura Registrador-Registrador é mais adotada, enquanto que os computadores CISC utilizam arquiteturas Registrador-Memória.

(20)
(21)

Conjuntos de Instruções

Como as arquiteturas RISC visam Unidades de Controle mais simples, rápidas e baratas, elas geralmente optam por instruções mais simples possível, com pouca variedade e com poucos endereços.

A pouca variedade dos tipos de instrução e dos modos de endereçamento, além de demandar uma Unidade de

Controle mais simples, também traz outro importante benefício, que é a previsibilidade.

(22)

Conjuntos de Instruções

Como as intrusões variam pouco de uma para outra, é mais fácil para a Unidade de Controle prever quantos ciclos serão necessários para executa-las.

Esta previsibilidade traz benefícios diretos para o ganho de desempenho com o Pipeline.

Ao saber quantos ciclos serão necessários para executar um estágio de uma instrução, a Unidade de Controle saberá exatamente quando será possível iniciar o estágio de uma próxima instrução.

(23)

Conjuntos de Instruções

Já as arquiteturas CISC investem em Unidades de Controle poderosas e capazes de executar tarefas complexas como a Execução Fora de Ordem e a Execução Superescalar.

Na execução Fora de Ordem, a Unidade de Controle analisa uma sequência de instruções ao mesmo tempo. Muitas vezes há dependências entre uma instrução e a seguinte, impossibilitando que elas sejam executadas em Pipeline.

(24)

Conjuntos de Instruções

Assim, a Unidade de Controle busca outras instruções para serem executadas que não são as próximas da sequência e que não sejam dependentes das instruções atualmente executadas. Isso faz com que um programa não seja executado na mesma ordem em que foi compilado.

(25)

Conjuntos de Instruções

Estas características de complexidade tornam os estágios de Pipeline dos processadores CISC mais longos, em torno de 20 a 30 estágios.

Isto porque estas abordagens de aceleração de execução devem ser adicionadas no processo de execução.

Já os processadores RISC trabalham com estágios mais curtos, em torno de 4 a 10 estágios.

(26)

Conjuntos de Instruções

Os processadores CISC também utilizam mais memória principal e Cache, enquanto que os processadores RISC utilizam mais registradores.

Isso porque os processadores CISC trabalham com um maior volume de instruções e dados simultaneamente.

(27)

Conjuntos de Instruções

Esses dados não poderiam ser armazenados em registradores, devido à sua elevada quantidade e são, geralmente, armazenados em memória Cache.

Enquanto que os processadores RISC trabalham com menos instruções e dados por vez, o que possibilita a utilização predominante de registradores.

(28)

Afinal, qual a melhor abordagem?

Sempre que este assunto é apresentado, surge a pergunta crucial sobre qual é a melhor abordagem, a RISC ou a CISC?

Esta é uma pergunta difícil e sem resposta definitiva.

A melhor resposta que acho é de que depende do uso que se quer fazer do processador.

(29)

Afinal, qual a melhor abordagem?

Processadores RISC geralmente resultam em projetos menores, mais baratos e que consumem menos energia.

Isso torna-os muito interessante para dispositivos móveis e computadores portáteis mais simples.

Já os processadores CISC trabalham com clock muito elevado, são mais caros e mais poderosos no que diz respeito a desempenho.

(30)

Afinal, qual a melhor abordagem?

Entretanto, eles são maiores e consomem mais energia, o que os torna mais indicados para computadores de mesa e notebooks mais poderosos, além de servidores e computadores profissionais.

(31)

Afinal, qual a melhor abordagem?

Os processadores CISC iniciaram com processadores mais simples e depois foram incorporando mais funcionalidades. Os fabricantes, como a Intel e a AMD, precisavam sempre criar novos projetos mas mantendo a compatibilidade com as gerações anteriores

(32)

Afinal, qual a melhor abordagem?

Ou seja, o Conjunto de Instruções executado pelo 486 precisa também ser executado pelo Pentium para os programas continuassem compatíveis.

O Pentium IV precisou se manter compatível ao Pentium e o Duo Core é compatível com o Pentium IV.

Isso tornou o projeto dos processadores da Intel e AMD muito complexos, mas não pouco eficientes. Os computadores líderes mundiais em competições de desempenho computacional utilizam processadores CISC.

(33)

Afinal, qual a melhor abordagem?

Já o foco dos processadores RISC está na simplicidade e previsibilidade.

Além do benefício da previsibilidade do tempo de execução ao Pipeline, ele também é muito interessante para aplicações industriais

(34)

Afinal, qual a melhor abordagem?

Algumas dessas aplicações são chamadas de Aplicações de Tempo Real.

Essas aplicações possuem como seu requisito principal o tempo para realizar as tarefas.

Assim, o Sistema Operacional precisa saber com quantos milissegundos um programa será executado.

(35)

Afinal, qual a melhor abordagem?

Isso só é possível com processadores RISC, com poucos estágios de Pipeline, poucos tipos de instrução, execução em ordem etc.

Mesmo que os processadores RISC sejam mais lentos do que os CISC, eles são mais utilizados nessas aplicações críticas e de tempo real, como aplicações industriais, de automação e robótica.

(36)
(37)

Arquiteturas Paralelas

O grande interesse por problemas cada vez mais complexos tem levado à necessidade de computadores cada vez mais potentes para resolvê-los.

Entretanto, limitações físicas e econômicas têm restringido o aumento da velocidade dos computadores sequenciais, ou seja, computadores que executam instruções em série, uma após a outra pela CPU

(38)

Arquiteturas Paralelas

Por outro lado, os problemas computacionais usualmente podem ter algumas de suas partes divididas em pedaços que teriam como ser solucionados ao mesmo tempo ou

processadas em paralelo.

Processamento paralelo é então uma forma pela qual a demanda computacional é suprida por meio do uso simultâneo de recursos computacionais como processadores para solução de um problema.

(39)

Arquiteturas Paralelas

A computação paralela é caracterizada pelo uso de várias unidades de processamento ou processadores para executar uma computação de forma mais rápida

É baseada no fato de que o processo de resolução de um problema pode ser dividido em tarefas menores, realizadas simultaneamente por meio de algum tipo de coordenação

(40)

Taxonomia de Flynn

A taxonomia de Flynn abrange quatro classes de arquiteturas de computadores:

SISD (Single Instruction Single Data): fluxo único de instruções sobre um único conjunto de dados.

SIMD (Single Instruction Multiple Data) : fluxo único de instruções em múltiplos conjuntos de dados.

MISD (Multiple Instruction Single Data) fluxo múltiplo de instruções em um único conjunto de dados.

(41)

Taxonomia de Flynn

MIMD (Multiple Instruction Multiple Data): fluxo

(42)

SISD (Single Instruction Single Data)

Nesta classe, um único fluxo de instruções opera sobre um único fluxo de dados.

Isso corresponde ao processamento sequencial característico da máquina de Von Neumann e que compreende os computadores pessoais e estações de trabalho.

(43)

SISD (Single Instruction Single Data)

Apesar dos programas estarem organizados por meio de

instruções sequenciais, elas podem ser executadas de forma sobreposta em diferentes estágios (pipelining)

Arquiteturas SISD caracterizam-se por possuírem uma única unidade de controle, podendo possuir mais de uma unidade funcional.

Um exemplo seria seu computador pessoal com um processador convencional

(44)

SIMD (Single Instruction Stream Multiple Data)

Esta classificação corresponde ao processamento de vários dados sob o comando de apenas uma instrução.

Em uma arquitetura SIMD, o programa ainda segue uma organização sequencial.

Para possibilitar o acesso a múltiplos dados é preciso uma organização de memória em diversos módulos.

(45)

SIMD (Single Instruction Stream Multiple Data)

A unidade de controle é única, e existem diversas unidades funcionais. Nesta classe estão os processadores vetoriais e matriciais.

(46)

SIMD (Single Instruction Stream Multiple Data)

Quanto às facilidades de hardware para armazenamento, essas normalmente são classificadas como:

➢ Processor Array ➢ Vector Pipeline

(47)

SIMD (Single Instruction Stream Multiple Data)

Exemplo de computadores com a arquitetura processor array são as máquinas: ILLIAC IV (Universidade de

Illinois), Thinking Machine CM- 2 e MASPAR MP-1216. Exemplo de computadores com a arquitetura vector

pipeline são as máquinas : IBM 9000, Cray X-MP, Y-MP & C90, Fujitsu VP, NEC SX-2, Hitachi S820, ETA10. As GPUs, também, estão sob essa classificação

(48)

MISD (Multiple Instruction Stream Single Data Stream) Um conjunto de dados é colocado concorrente em múltiplas unidades de processamento. Cada UP opera de maneira independente via conjuntos independentes de instruções

Algumas utilizações de uma configuração MISD poderiam ser:

➢ Filtros de múltiplas frequências operando um mesmo sinal

➢ Múltiplos algoritmos de criptografia tentando a quebra de uma mensagem codificada

(49)

MISD (Multiple Instruction Stream Single Data Stream)

Não se tem conhecimento de arquitetura de máquinas comercial com múltiplas instruções trabalhando com um único conjunto de dados concorrente.

Em 1971, uma máquina denominada como C.mmp computer foi desenvolvida na Universidade de Carnegie-Mellon

(50)

MISD (Multiple Instruction Stream Single Data Stream)

Esta classe é bastante genérica, envolvendo o processamento de múltiplos dados por parte de múltiplas instruções. Neste caso, várias unidades de controle.

comandam suas unidades funcionais, as quais têm acesso a vários módulos de memória.

Qualquer grupo de máquinas operando como uma unidade (deve haver certo grau de interação entre as máquinas) enquadra-se como MIMD. Alguns representantes desta categoria são os servidores multiprocessados, as redes de estações e as arquiteturas massivamente paralelas.

(51)

threads

Thread é um termo recorrente nas fichas técnicas de processadores e virou até nome de chip, com o AMD Threadripper.

Entender esse conceito é importante na hora de comprar uma nova CPU, já que pode indicar se um modelo vale ou não a pena para o tipo de uso desejado.

(52)

threads

Thread, em inglês, significa "fio" ou "linha", e no contexto dos microprocessadores representa uma ordem de execução, com instruções encadeadas que são desempenhadas uma por vez.

(53)
(54)

threads

Resumidamente, os threads definem como um processador funciona, recebendo e executando instruções.

Isso acontece muito rapidamente e passa a sensação de que as ações são simultâneas.

Portanto, uma CPU com um thread tem apenas uma linha de trabalho – e realiza uma ação por vez. Logo, processadores multithread são mais vantajosos, já que dão a possibilidade de operar em diversas frentes ao mesmo tempo.

(55)

Quando se fala que um determinado processador é dual-core, quad-dual-core, hexa-dual-core, e assim por diante, significa que a CPU tem diversos núcleos independentes que funcionam como processadores individuais.

Cada um desses corresponde a uma thread, ou linha de execução. Nesse caso, os chips podem executar tarefas simultâneas, já que cada um fica encarregado de uma sequência de informações diferente, aumentando a performance do sistema.

(56)

É importante lembrar que os processadores multicore podem, mas nem sempre executam múltiplas linhas de instruções ao mesmo tempo.

Isso acontece porque o suporte a essa característica depende diretamente do tipo de aplicação a ser usada.

Muitos programas não tiram proveito da presença de diferentes núcleos, utilizando apenas uma thread.

(57)

Quem está no mercado em busca de um processador novo já pode ter se deparado com especificações técnicas anotadas da seguinte forma: 4 núcleos e 8 threads, ou 6 núcleos e 12 threads, e assim por diante. Mas se cada linha de execução corresponde a apenas um núcleo, como surgem essas outras threads?

(58)

Existe outra forma de trabalhar com mais de uma linha de execução; a chamada SMT (Smiultaneous Multithreading, em inglês).

Também conhecido como Hyper Threading –

nomenclatura utilizada pela Intel –, o conjunto de técnicas

não tem o mesmo desempenho que mais núcleos com uma única thread cada, mas pode render performance de ponta.

(59)

Tudo depende do suporte ao recurso nas aplicações executadas e da qualidade da tecnologia, que varia de geração em geração de processadores e de escopo entre Intel e AMD, no caso dos desktops.

(60)
(61)
(62)
(63)
(64)
(65)
(66)
(67)
(68)

Questões

Baixar o arquivo do site :

https://sites.google.com/site/profandretreffunip/discipli nas---gestao-de-ti/redes-de-computadores

Atividade 2 - Situação Problema para Processadores Entrega: Individual

Referências

Documentos relacionados

Tinta de visibilidade Bloqueio UV* Grupo FDA Diâmetro Curva de base Conteúdo em material / H2O Opções de tamanho da embalagem Calendário de utilização Asférico Digital

na cultura da mandioca, assim como, a metodologia de estudo com este inseto, e a partir deste observou- se a necessidade do desenvolvimento de novas pesquisas que explorem

a) na estrutura do ARN ribossomal b) na reduplicação do ADN c) na transcrição do código genético d) na tradução do código genético e) tanto de transcrição como de

Com o propósito de apresentar a construção de um instrumento náutico usado no período das grandes navegações, a Balestilha, e a sua utilização como

Cerca de 35 por cento das receitas dizem respeito ao correio expresso, que apresenta quebras menos acentuadas no último ano (-0,2 por cento).  Contabilizaram-se 15,3

Portanto, apesar da existência de dados que comprovem a validade da VCRIT e correlação com o Limiar Anaeróbio, ainda são necessários mais estudos que analisem a sensibilidade da

O orador que apresenta o argumento «Não há provas de que Deus não exista; portanto, Deus existe».. incorre na mesma falácia em que incorre aquele que apresenta o

Constatou-se entre os alunos do ensino médio de escolas públicas estaduais do município de Ouro Preto- MG predileção pela modalidade futsal, sendo a mais praticada fora e