Departamento de Informática e Estatística

Programas de Ensino
Visitante (Entrar)

Programa de Ensino 20172

Aprovado pelo Departamento em: 29-6-2017

  1. Identificação: Visualizar em PDF
    • Disciplina: INE5440 - Tópicos Especiais em Arquitetura de Computadores
    • Carga horária: 72 horas-aula      Teóricas: 36      Práticas: 36
    • Período: Início da oferta da disciplina até a presente data
  2. Curso(s):
    • Ciências da Computação (208)
  3. Requisito(s):
    • Ciências da Computação (208)
      • INE5411 - Organização de Computadores I
  4. Ementa:
    • Ementa livre sobre novas técnicas ou tendências em Arquitetura de Computadores.
  5. Objetivo(s):
    • Geral: Prover uma visão abrangente sobre técnicas de otimização de desempenho de programas para arquiteturas de computadores contemporâneas e futuras, enfatizando os efeitos das interações entre estruturas de dados, compiladores, hierarquias de memória e sistemas operacionais.
    • Específicos:
      1. Apresentar os conceitos fundamentais relacionados à avaliação, depuração e replicação de desempenho de programas.
      2. Entender o funcionamento da hierarquia de memória e seus efeitos no desempenho de programas.
      3. Entender como o paralelismo em nível de threads presente em arquiteturas de computadores pode ser explorado em diferentes programas.
      4. Prover exemplos e experiências reais com problemas e soluções para o aumento de desempenho em programas em múltiplas linguagens de programação.
  6. Conteúdo Programático:
    • Avaliação de desempenho [4 horas-aula]
      • Análise de desempenho
      • Replicação de resultados
    • Depuração de desempenho e gargalos [6 horas-aula]
      • Análise de desempenho de regiões
      • Ferramentas de suporte
    • Compilação e código em representação intermediária [6 horas-aula]
      • Compreensão e uso
    • Hierarquias de memória e estruturas de dados [20 horas-aula]
      • Otimizações avançadas de desempenho de cache
      • Efeitos das estruturas de dados
      • Algoritmos cache-aware e cache-oblivious
      • Mapeamento de dados
    • Paralelismo em nível de threads [20 horas-aula]
      • Efeitos de contenção e compartilhamento
      • Mecanismos de sincronização avançados
      • Mapeamento de threads
    • Vetorização [6 horas-aula]
      • Vetorização manual e através de diretivas
    • Acesso a dados [10 horas-aula]
      • Entrada e saída
      • Armazenamento e acesso a arquivos
  7. Bibliografia Básica:
    • PATTERSON, David A.; HENNESSY, John L. Arquitetura de computadores: uma abordagem quantitativa. 5. ed. Rio de Janeiro: Elsevier, c2014. xxv, 435 [200] p. ISBN 9788535261226.
    • HENNESSY, John L; PATTERSON, David A. Computer organization and design: the hardware, software interface. 4th ed. Amsterdam: Elsevier, 2009. xxv, 703 p. ISBN 9780123744937.
  8. Bibliografia Complementar:
    • PADUA, David. Encyclopedia of Parallel Computing. 1st ed. Springer US, 2011. XXXIV, 2175 p. ISBN 9780387098449.
    • PACHECO, Peter. An Introduction to Parallel Programming. 1st ed. Morgan Kaufmann, 2011. 392 p. ISBN 9780080921440.