Você está na página 1de 56

Sistemas de

Computação
Aula 1: Tecnologias Computacionais

Leandro Santiago
Tecnologias
Computacionais
Revolução dos Computadores
→ Progresso na tecnologia da computação
Apoiado por aceleradores de domínio específico

3
Revolução dos Computadores
→ Progresso na tecnologia da computação
Apoiado por aceleradores de domínio específico

→ Torna novas aplicações viáveis


◦ Computadores em automóveis
◦ Celulares
◦ Projeto Genoma Humano
◦ World Wide Web
◦ Search Engines

3
Revolução dos Computadores
→ Progresso na tecnologia da computação
Apoiado por aceleradores de domínio específico

→ Torna novas aplicações viáveis


◦ Computadores em automóveis
◦ Celulares
◦ Projeto Genoma Humano
◦ World Wide Web
◦ Search Engines

→ Computadores são pervasivos

3
Classes de Computadores
→ Computadores Pessoais - PC
◦ Uso geral, variedade de software
◦ Sujeito a relação custo / desempenho
◦ Desktop, laptops

4
Classes de Computadores
→ Computadores Pessoais - PC
◦ Uso geral, variedade de software
◦ Sujeito a relação custo / desempenho
◦ Desktop, laptops

→ Servidores
◦ Baseado em rede
◦ Alta capacidade, desempenho, confiabilidade
◦ Varia de pequenos servidores à servidores que ocupam edifícios

4
Classes de Computadores
→ Supercomputadores
◦ Tipo de servidor
◦ Cálculos científicos e de engenharia de ponta
◦ Maior capacidade, mas representa uma pequena fração do
mercado geral de computadores

5
Classes de Computadores
→ Supercomputadores
◦ Tipo de servidor
◦ Cálculos científicos e de engenharia de ponta
◦ Maior capacidade, mas representa uma pequena fração do
mercado geral de computadores

→ Computadores Embarcados
◦ Oculto como componentes de sistemas
◦ Restrições de potência / desempenho / custo rigorosas

5
Era Pós-PC

6
Era Pós-PC
→ Personal Mobile Device (PMD)
◦ Operado por bateria
◦ Conecta-se à Internet
◦ Centenas de dolares
◦ Smart phones, tablets, electronic glasses

7
Era Pós-PC
→ Personal Mobile Device (PMD)
◦ Operado por bateria
◦ Conecta-se à Internet
◦ Centenas de dolares
◦ Smart phones, tablets, electronic glasses
→ Cloud computing
◦ Warehouse Scale Computers (WSC)
◦ Software as a Service (SaaS)
◦ Porção do software roda no PMD e outra porção roda na Cloud
◦ Amazon e Google

7
Sistemas de Computação
→ Um sistema é um conjunto de partes ordenadas que
cooperam/concorrem para atingir um objetivo comum
→ Sistema de computação:
conjunto de partes (memória, teclado, processador, periféricos,
programas básicos) que se coordenam para a realização de um
objetivo: computar

8
Sistemas de Computação
→ Um sistema é um conjunto de partes ordenadas que
cooperam/concorrem para atingir um objetivo comum
→ Sistema de computação:
conjunto de partes (memória, teclado, processador, periféricos,
programas básicos) que se coordenam para a realização de um
objetivo: computar

→ Sistemas de processamento de dados:


◦ Sistemas de computação (hardware e/ou software básico
fornecido pelo fabricante)
◦ Sistemas de aplicação (programas desenvolvidos pelo usuário)

8
Sete Grandes Ideias
→ Use abstração para simplificar o design

→ Faça o caso comum rápido

→ Desempenho via paralelismo

→ Desempenho via pipelining

→ Desempenho via previsão

→ Hierarquia de memórias

→ Confiabilidade por meio de


redundância 9
Poder da Abstração
→ O que é abstração?
Defina uma função, desenvolva uma implementação robusta e,
em seguida, coloque uma caixa em torno dela

10
Poder da Abstração
→ O que é abstração?
Defina uma função, desenvolva uma implementação robusta e,
em seguida, coloque uma caixa em torno dela

→ Porque abstração é útil?


◦ Permite criar máquinas complexas chamadas de computadores
◦ Imagine um bilhão de componentes — 1.000.000.000

10
Abstração é a Chave para Construir Sistemas

11
Um Sistema de Computação
→ O que é um sistema de computador?
→ Por onde começa?
→ Onde isso termina?

12
Abaixo do Seu Programa
Software de aplicação
◦ Escrito em linguagem de alto nível
(HLL)

13
Abaixo do Seu Programa
Software de aplicação
◦ Escrito em linguagem de alto nível
(HLL)

Software de sistema
◦ Compilador: converte o código em
HLL para código de máquina
◦ Sistema operacional: código de
serviço

13
Abaixo do Seu Programa
Software de aplicação
◦ Escrito em linguagem de alto nível
(HLL)

Software de sistema
◦ Compilador: converte o código em
HLL para código de máquina
◦ Sistema operacional: código de
serviço

Hardware
◦ Processador, memória, controladores
de I/O
13
Níveis do Código do Programa

→ Linguagem de alto nível


◦ Nível de abstração mais próximo do
domínio do problema
◦ Oferece produtividade e portabilidade

14
Níveis do Código do Programa

→ Linguagem de alto nível


◦ Nível de abstração mais próximo do
domínio do problema
◦ Oferece produtividade e portabilidade

→ Linguagem Assembly
◦ Representação textual das instruções

14
Níveis do Código do Programa

→ Linguagem de alto nível


◦ Nível de abstração mais próximo do
domínio do problema
◦ Oferece produtividade e portabilidade

→ Linguagem Assembly
◦ Representação textual das instruções

→ Representação de hardware
◦ Dígitos binários (bits)
◦ Instruções e dados codificados

14
Componentes de um Computador

Mesmos componentes para todos os


tipos de computadores
◦ Desktop, servidor, embarcado

Entrada/saída inclui
◦ Dispositivos de interface do usuário
◦ Dispositivos de armazenamento
◦ Adaptadores de rede

15
Touchscreen

→ Dispositivo Pós-PC

→ Substitui o teclado e o mouse

→ Tipos resistivos e capacitivos


◦ Maioria dos tablets, smartphones usa
capacitivo
◦ Capacitivo permite vários toques
simultaneamente

16
Tendências Atuais em Arquitetura
→ Não é possível continuar a aproveitar o paralelismo de nível de
instrução (ILP)
◦ Melhoria de desempenho de processador single core terminou
em 2003

17
Tendências Atuais em Arquitetura
→ Não é possível continuar a aproveitar o paralelismo de nível de
instrução (ILP)
◦ Melhoria de desempenho de processador single core terminou
em 2003

→ Novos modelos de desempenho:


◦ Data-level parallelism (DLP)
◦ Thread-level parallelism (TLP)
◦ Request-level parallelism (RLP)

17
Tendências Atuais em Arquitetura
→ Não é possível continuar a aproveitar o paralelismo de nível de
instrução (ILP)
◦ Melhoria de desempenho de processador single core terminou
em 2003

→ Novos modelos de desempenho:


◦ Data-level parallelism (DLP)
◦ Thread-level parallelism (TLP)
◦ Request-level parallelism (RLP)

→ Isso exige uma reestruturação explícita da aplicação

17
Multiprocessadores
Microprocessadores multicore
→ Mais de um processador por chip

18
Multiprocessadores
Microprocessadores multicore
→ Mais de um processador por chip
Requer programação explicitamente paralela
→ Comparação com paralelismo de nível de instrução
◦ O hardware executa várias instruções ao mesmo tempo
◦ Oculto ao programador
→ Difícil de fazer
◦ Programação para desempenho
◦ Balanceamento de carga
◦ Otimizar a comunicação e a sincronização

18
Intel i9 9900K

19
Cores mais simples
Graphics Processing Units (GPUs)
→ Aceleradores gráficos

→ NVIDIA, AMD/ATI

20
Cores mais simples
Graphics Processing Units (GPUs)
→ Aceleradores gráficos

→ NVIDIA, AMD/ATI

General Purpose GPUs (GPGPUs)


→ Programáveis em subconjunto do C

→ CUDA (NIVIDIA)

→ OpenCL (NVIDIA e ATI)

20
NVIDIA Titan RTX
• Processamento de imagem, processamento sísmico, análise de dados,
treinamento de modelos de Deep Learning, modelagem climática,
computação financeira, química e física computacional

• Pico de ponto flutuante precisão simples: 16.3 TFLOPS

• Memória: 24 GB
• RT Cores: 72
• Tensor Cores: 576
• Cuda Cores: 4608

21
Memory Wall

22
Em outra direção...

→ Várias Máquinas

→ Clusters
Rede local (uso de switches)

23
Em outra direção...

→ Várias Máquinas

→ Clusters
Rede local (uso de switches)

→ Grades computacionais (grids)


Distanciamento geográfico (Internet)

23
Clusters

24
Clusters - Refrigeração

25
Top 500 (http://www.top500.org) - 06/2021

26
Número 1 – 06/2018 - 11/2019

→ Summit - IBM Power System


AC922, IBM POWER9 22C
3.07GHz, NVIDIA Volta GV100,
Dual-rail Mellanox EDR
Infiniband , IBM , DOE/SC/Oak
Ridge National Laboratory (USA)

→ 2.414.592 cores

→ 200,795.9 TFlops/s

27
Número 1 – 06/2020 - 06/2021

→ SuperComputer Fugaku -
Fujitsu, A64FX 48C 2.2GHz,
Memory 4.85 PiB

→ 7.299.072 cores

→ 513,855.0 TFlops/s

28
Grids - Tarifação: Cloud Computing

→ Amazon Elastic Compute Cloud (Amazon EC2)

→ Microsoft Azure

→ Google Cloud Platform

→ Não somente infraestrutura (IaaS), como também software (SaaS)


e plataformas (PaaS)

29
Paralelismo
→ Classes de paralelismo em aplicações
◦ Data-level parallelism (DLP)
◦ Thread-level parallelism (TLP)

30
Paralelismo
→ Classes de paralelismo em aplicações
◦ Data-level parallelism (DLP)
◦ Thread-level parallelism (TLP)

→ Classes de paralelismo na arquitetura


◦ Instruction-level parallelism (ILP)
◦ Arquiteturas Vetoriais/Graphic Processor Units (GPUs)
◦ Thread-level parallelism (TLP)
◦ Request-level parallelism (RLP)

30
Taxonomia de Flyn (1972)

→ SPMD: Single Program Multiple Data


◦ Um programa paralelo em um computador MIMD
◦ Código condicional para diferentes processadores
31
Taxonomia de Flyn (1972)

→ SISD
◦ Um computador sequencial que não
explora paralelismo de instrução nem
streams de dados
◦ Exemplo: Processador (mono)
tradicional

32
Taxonomia de Flyn (1972)

→ SIMD
◦ Um computador que explora
múltiplas streams de dados com
apenas uma stream de instruções
para executar operações
naturalmente paralelizáveis
◦ Exemplo: Processadores vetoriais
(família CRAY-1) ou GPGPUs.

33
Taxonomia de Flyn (1972)

→ MISD
◦ Múltiplas instruções operam em uma
única stream de dados
◦ Exemplos:
∗ Pipeline de máquinas (o dado vai
sendo transformado)
∗ Data-flow: Execução guiada pelo
fluxo de dados

34
Taxonomia de Flyn (1972)

→ MIMD
◦ Múltiplos processadores autônomos
operam simultaneamente executando
diferentes instruções com diferentes
dados
◦ Exemplos:
∗ Multiprocessadores
∗ Multicomputadores

35
Internet of Things (IoT)

→ Termo que se refere à expansão da interconexão de dispositivos


inteligentes, variando de eletrodomésticos a minúsculos sensores

→ É impulsionado principalmente por dispositivos embarcados


profundamente

→ É a quarta geração que geralmente é considerada como IoT e é


marcada pelo uso de bilhões de dispositivos embarcados

36
Internet of Things (IoT)

37
Próxima Aula

→ Estrutura de Computadores de Propósito Geral

38
leandro@ic.uff.br

Você também pode gostar