INE5440 - Tópicos Especiais em Arquitetura de Computadores
Nível:
Graduação
Carga Horária:
72 horas-aula (Teórica: 36; Prática: 36)
Vigência:
De 2017-2 até a presente data
2. Ementa
Ementa livre sobre novas técnicas ou tendências em Arquitetura de Computadores.
3. Cursos Relacionados
CIÊNCIAS DA COMPUTAÇÃO (208) - Currículo: 2007-1 (Optativa)
4. Objetivos
4.1 Objetivo 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.
4.2 Objetivos 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.
5. 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
6. 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.
7. 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.