MINISTÉRIO DA EDUCAÇÃO

UNIVERSIDADE FEDERAL DE SANTA CATARINA

CENTRO TECNOLÓGICO

DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA

PROGRAMA DE ENSINO

1. Identificação

Disciplina: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

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:

  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.

5. Conteúdo Programático

  1. Avaliação de desempenho [4 horas-aula]
    1. Análise de desempenho
    2. Replicação de resultados
  2. Depuração de desempenho e gargalos [6 horas-aula]
    1. Análise de desempenho de regiões
    2. Ferramentas de suporte
  3. Compilação e código em representação intermediária [6 horas-aula]
    1. Compreensão e uso
  4. Hierarquias de memória e estruturas de dados [20 horas-aula]
    1. Otimizações avançadas de desempenho de cache
    2. Efeitos das estruturas de dados
    3. Algoritmos cache-aware e cache-oblivious
    4. Mapeamento de dados
  5. Paralelismo em nível de threads [20 horas-aula]
    1. Efeitos de contenção e compartilhamento
    2. Mecanismos de sincronização avançados
    3. Mapeamento de threads
  6. Vetorização [6 horas-aula]
    1. Vetorização manual e através de diretivas
  7. Acesso a dados [10 horas-aula]
    1. Entrada e saída
    2. Armazenamento e acesso a arquivos

6. Bibliografia Básica

  1. 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.
  2. 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

  1. PADUA, David. Encyclopedia of Parallel Computing. 1st ed. Springer US, 2011. XXXIV, 2175 p. ISBN 9780387098449.
  2. PACHECO, Peter. An Introduction to Parallel Programming. 1st ed. Morgan Kaufmann, 2011. 392 p. ISBN 9780080921440.