You are on page 1of 42
Arquiteturas Avançadas de Computadores Aula 1: Motivação e Conceitos Básicos Professor: Leandro Marzulo
Arquiteturas Avançadas de
Computadores
Aula 1: Motivação e Conceitos Básicos
Professor: Leandro Marzulo

Objetivos do Curso

  • Apresentar técnicas e conceitos usados no desenvolvimento de processadores modernos

    • Paralelismo em nível de instrução (ILP)

      • Pipelining

      • Branch prediction

      • Execução de instruções fora-de-ordem (Tomasulo)

      • Superescalares

  • Paralelismo em nível de threads (TLP)

    • Multiprocessadores

    • Protocolos de coerência de cache

    • APIs de programação paralela

  • Entre outros ...

  • Site da disciplina  www.lam.ufrj.br/moodle  Fazer o cadastro no site  Colocar nome completo 
    Site da disciplina
    www.lam.ufrj.br/moodle
    Fazer o cadastro no site
    Colocar nome completo
    Fazer inscrição na disciplina
    Chave de acesso: GRUPOXX_AA_UERJ_2012_2
    Substituir XX pelo número do seu grupo.
    Material
    Atividades
    Avisos
    Fórum
    Dúvidas
    3
    Livro texto  Organização e Projeto de Computadores – A Interface Hardware/Software  David A. Patterson

    Livro texto

    • Organização e Projeto de Computadores A Interface Hardware/Software

      • David A. Patterson e John L. Henessy

      • 3ª Edição

      • Editora Campus

  • 4ª Edição somente em Inglês

  • Avaliação

    • 2 Provas + reposição

      • Reposição fechada (só quem faltar pode fazer)

    • Trabalhos Práticos (em grupos de ATÉ 5 alunos)

    • Listas de Exercícios

    • Entrega pelo site

    • Quem não tiver presença precisa passar direto ou será reprovado por faltas (não pode fazer PF)

      • Média 7!!!

    Lei de Moore  “A densidade de transistores nos circuitos integrados dobra a cada 2 anos.”
    Lei de Moore
    “A densidade de transistores nos circuitos integrados dobra a
    cada 2 anos.”
    “Moore’s Law: Raising the Bar” (Intel Corporation 2005)
    6
    Lei de Moore 7
    Lei de Moore
    7

    Mais Transitores = ?

    • Conectividade

      • # de conexões cresce quadraticamente com o # de unidades funcionais

    • Dissipação de calor

      • Gerência do uso de energia

    • Sincronização (clock)

    • Variabilidade do substrato (silício)

    => problemas interligados

    AMD OverDrive 9
    AMD OverDrive
    9
    Intel i7 TurboBoost 10
    Intel i7 TurboBoost
    10
    Multicores  Muitos núcleos  Forma de aproveitar a maior densidade de transistores => problemas continuam
    Multicores
    Muitos núcleos
    Forma de aproveitar a maior
    densidade de transistores
    => problemas continuam
    11
    Intel i7 12
    Intel i7
    12
    AMD 6200 – Interlagos – 16 cores 13
    AMD 6200 – Interlagos – 16 cores
    13

    Cores mais simples

    • Graphics Processing Units (GPUs)

      • Aceleradores gráficos

      • NVIDIA, AMD/ATI

  • General Purpose GPUs (GPGPUs)

    • Programáveis em subconjunto do C

    • CUDA (NVIDIA)

    • OpenCL (NVIDIA e ATI)

  • NVIDIA Tesla M2090  Processamento sísmico, CFD, CAE, computação financeira, química e física computacional, análise de
    NVIDIA Tesla M2090
    Processamento sísmico, CFD, CAE, computação
    financeira, química e física computacional,
    análise de dados, processamento de imagem de
    satélite, modelagem climática
    Pico de Ponto flutuante
    Gigaflops
    precisão dupla: 665
    Pico de Ponto flutuante precisão simples: 1331
    Gigaflops
    Memória : 6GB
    Cuda Cores: 512
    15
    Memory Wall 16
    Memory Wall
    16

    Em outra direção ...

    • Várias Máquinas

    • Clusters

      • Rede local (uso de switches)

    • Grades computacionais (grids)

      • Distanciamento geográfico (Internet)

    Clusters

    • Agregado de máquinas off-the-shelf realizando processamento paralelo

      • Beowulf (NASA, 1994)

      • NoW/CoW Network/Cluster ofWorkstations (Berkeley, 1996)

    Clusters  San Diego Supercomputing Center 19
    Clusters
    San Diego Supercomputing Center
    19
    Clusters - Refrigeração 20
    Clusters - Refrigeração
    20
    Top 500 (http://www.top500.org) Junho/2012 GPGPUs 21
    Top 500 (http://www.top500.org)
    Junho/2012
    GPGPUs
    21
    Top 500 - Brasil 22
    Top 500 - Brasil
    22
    Clusters 23
    Clusters
    23
    Clusters 24
    Clusters
    24

    Grids

    • Grade Computacional (Grid computing) analogia com a malha elétrica: usuários podem ceder ou consumir ʻenergiaʼ computacional

    Grids

    • União voluntária

      • SETI@home (Search for ET Intelligence)

      • PS3grid/GPUgrid

    Grids

    • Tarifação: cloud computing

      • Amazon Elastic Compute Cloud (Amazon EC2)

      • Não somente infraestrutura (IaaS), como também software (SaaS) e plataformas (PaaS)

    Grids  Federação  EELA e EELA-2, E-science grid facility for Europe and Latin America! www.eu-eela.eu
    Grids
    Federação
    EELA e EELA-2, E-science grid facility for Europe and Latin
    America!
    www.eu-eela.eu
    PlanetLab, Global, consortium acadêmico e industrial (Intel,
    Google, HP, AT&T, France Telecom etc) norte-americano
    (Berkeley, Princeton e Washington gerem o consortium)
    www.planet-lab.org
    28
    29
    29

    Terminologia

    • Processo

    • Thread

    • Paralelismo

    • Concorrência

    • Distribuição

    • Multiprocessamento

    • Multiprogramação

    • Algoritmo distribuído

    • Sistema distribuído

    Definições

    • Processo

      • “Um programa em execução” _ A. S. Tanenbaum.

      • “A entidade que pode ter sua execução atribuída a um processador” _ W. Stallings.

    Processo nome registradores PID gerais owner (UID) prioridade de registrador PC execução data/ hora Contexto de
    Processo
    nome
    registradores
    PID
    gerais
    owner (UID)
    prioridade de
    registrador PC
    execução
    data/ hora
    Contexto de
    Contexto de
    de criação
    Software
    Hardware
    registrador SP
    tempo de
    processador
    quotas
    Programa
    registrador
    de status
    privilégios
    Espaço de
    Endereçamento
    endereços de memória
    principal alocados
    31
    Criação de Processos #include <sys/types.h> #include <stdio.h> #include <unistd.h> int main() { retoma a pai (pid
    Criação de Processos
    #include <sys/types.h>
    #include <stdio.h>
    #include <unistd.h>
    int main()
    {
    retoma a
    pai (pid > 0)
    execução
    pid_t pid;
    pid = fork();
    wait()
    fork()
    filho (pid ==0)
    if (pid < 0) { //erro
    fprintf(stderr, “Fork falhou!\n”);
    return 1;
    }
    else if (pid == 0) { //processo filho
    exec()
    exit()
    execlp(“/bin/ls”, “ls”, NULL);
    }
    else { //processo pai
    wait(NULL);
    printf(“Filho terminou!\n”);
    }
    return 0;
    }
    3232

    Definições

    • Threads

      • Linhas de execução, também chamadas lightweight processes.

      • Processos leves que compartilham espaço de endereçamento de memória.

    Multi-thread Contexto Contexto Contexto de hardware de hardware de hardware Thread 1 Thread 2 Thread 3
    Multi-thread
    Contexto
    Contexto
    Contexto
    de hardware
    de hardware
    de hardware
    Thread 1
    Thread 2
    Thread 3
    Espaço de
    endereçamento
    34
    Co ntext o de
    so ftw ar e
    Com mais detalhes ... ... código dados arquivos registradores registradores registradores pilha pilha pilha 35
    Com mais detalhes ...
    ...
    código
    dados
    arquivos
    registradores
    registradores
    registradores
    pilha
    pilha
    pilha
    35

    APIs de Threads

    • Pthreads (POSIX Threads)

    • Win32

    • Java

    • OpenMP

    • Intel TBB (Thread Building Blocks)

    Definições

    • Paralelismo

      • Designa situação em que coisas acontecem ao mesmo tempo.

    • Concorrência

      • Designa situação em que há competição por recursos, indicando potencial paralelismo.

      • Havendo recursos suficientes, haverá paralelismo.

    Definições

    • Distribuição (vs Centralização)

      • Designa descentralização do controle (da administração dos recursos por parte dos processos).

    • Distribuição (Geográfica)

      • Pode existir sob controle hierarquizado ou mesmo centralizado.

    Definições

    • Multiprocessamento

      • Vários processos (threads) executando em paralelo.

      • Pressupõe a disponibilidade de mais de um processador (núcleo).

  • Multiprogramação"

    • Vários programas compartilhando a mesma máquina.

    • Conceito ligado aos de compartilhamento de tempo (time-sharing), suspensão de execução e concorrência.

  • Definições

    • Algoritmo distribuído

      • Envolve elementos cooperando através de troca de informações, sem uma orquestração centralizada.

      • O código de cada elemento pode ser o mesmo, ou podem existir diferenças.

  • Sistema distribuído

    • “Uma coleção de computadores independentes que aparece para os usuários do sistema que os rege como um único computador (entidade)” A. S. Tanembaum. "

  • Dualidades  No mundo real  Bem - Mal  Matéria - Energia  Yin -Yang
    Dualidades
    No mundo real
    Bem - Mal
    Matéria - Energia
    Yin -Yang
    Trabalho - Lazer
    Na Filosofia
    “Informação é diferença que faz diferença” G. Bateson. Steps to
    an Ecology of Mind, Chicago: University of Chicago Press, 2000.
    Na Computação (digital)
    O BIT – 0 ou 1
    41

    Dualidades

    • Ainda na Computação

      • Hardware - Software

      • Real -Virtual

      • Sequencial - Paralelo

      • Centralizado - Distribuído

      • Memória - Processador

      • Dado - Processamento

      • Mono - Multi

      • Mensagem - Passo (na rede)

      • Comunicação - Execução

      • Síncrono - Assíncrono