Escolar Documentos
Profissional Documentos
Cultura Documentos
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
3
Revolução dos Computadores
→ Progresso na tecnologia da computação
Apoiado por aceleradores de domínio específico
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
8
Sete Grandes Ideias
→ Use abstração para simplificar o design
→ Hierarquia de memórias
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
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
14
Níveis do Código do Programa
→ Linguagem Assembly
◦ Representação textual das instruções
14
Níveis do Código do Programa
→ 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
Entrada/saída inclui
◦ Dispositivos de interface do usuário
◦ Dispositivos de armazenamento
◦ Adaptadores de rede
15
Touchscreen
→ Dispositivo Pós-PC
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
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
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
→ CUDA (NIVIDIA)
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
• 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)
23
Clusters
24
Clusters - Refrigeração
25
Top 500 (http://www.top500.org) - 06/2021
26
Número 1 – 06/2018 - 11/2019
→ 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
→ Microsoft Azure
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)
30
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)
36
Internet of Things (IoT)
37
Próxima Aula
38
leandro@ic.uff.br