Programa de Ensino 20172
Aprovado pelo Departamento em: 29-6-2017
- Identificação:
- 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
- Curso(s):
- Ciências da Computação (208)
- Requisito(s):
- Ciências da Computação (208)
- INE5411 - Organização de Computadores I
- Ementa:
- Ementa livre sobre novas técnicas ou tendências em Arquitetura de Computadores.
- 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:
- Apresentar os conceitos fundamentais relacionados à avaliação, depuração e replicação de desempenho de programas.
- Entender o funcionamento da hierarquia de memória e seus efeitos no desempenho de programas.
- Entender como o paralelismo em nível de threads presente em arquiteturas de computadores pode ser explorado em diferentes programas.
- 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.
- 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]
- 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
- 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.
- 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.