MO801/MC972 - Tópicos em Arquitetura e Hardware (Arquiteturas Multicores)

Informações Gerais

Professor: Rodolfo Jardim de Azevedo (email)

Aula: Ter-Qui: 16h-18h

Atendimento: Enviar email marcando horário

Sala: 85

Avaliação

Veja Também

Avisos

18/07 Notas finais liberadas. Foi colocado conceito I para os alunos que não estão com A na página de conceito. Isso dará até o final do mês de julho para que vocês entreguem mais atividades da disciplina. No dia 31/07 lançarei as novas notas conforme as atividades entregues.
16/07 Notas iniciais liberadas. Certifique-se de que suas entregas estão lá.
07/06 Apenas para os alunos que estão matriculados em MC972 (turma da graduação). Os formulários de avaliação do curso estão disponíveis noescaninho do lado de fora da minha porta. Pegue um formulário, preencha e coloque dentro do envelope.
16/04 Listagem dos arquivos já entregues. Por favor, sigam o modelo de nomes para os próximos envios.
10/04 Prazo para definir os assuntos do primeiro e terceiro trabalhos: 20/04.
26/03 Wiki da disciplina no ar.
26/03 Não haverá aula no dia 29/03. Utilizem o tempo para fazer a atividade de US$2.000.000,00!
19/03 Os artigos estão disponíveis no meu homedir do IC-3, dentro do diretório mo801.
18/12 Verifique as datas importantes no calendário de pós-graduação e no calendário de graduação.

Objetivos

Estudar conceitos relacionados com Arquiteturas de Computadores Multicores. O Curso será dividido em duas partes, uma com foco em Hardware e outra com foco em Software. A parte de software conterá várias atividades práticas em laboratório.

Bibliografia

Veja lista de artigos para resumos e notas de aulas.

Alguns itens úteis para realizar os trabalhos:

Principalmente em relação às APIs de programação, existem muitas páginas com bons tutoriais. Façam uma busca no Google sobre elas.

Atividades

Cada aluno deverá fazer 10 resumos durante o semestre, uma apresentação sobre um tema específico e três trabalhos individuais (um teórico e dois práticos).

Os alunos matriculados apenas na disciplina MC972 devem entregar apenas 7 resumos.

Resumos

Todos os artigos abaixo devem ser lidos e resumidos durante o curso. As datas de entrega estão no calendário no final dessa página. Um resumo deve ter apenas uma página. Como guia, um resumo deve conter: Visão geral do assunto do artigo, contribuição do artigo, resultados obtidos e um comentário sobre a relevância desse trabalho tanto em relação à área quanto em relação ao curso.

  1. A. Abnous and N. Bagherzadeh. Architectural Design and Analysis of a VLIW Processor. International Journal of Computers and Electrical Engineering, 21(2):119–142, 1995.
  2. J. L. Cruz, A. Gonzales, M. Valero, and N. P. Topham. Multiple-Banked Register File Architectures. In Proceedings of the 27th Annual International Symposium on Computer Architecture, pages 316–325, Vancouver, 2000. ACM Press.
  3. A. Joshi, A. Phansalkar, L. Eeckhout, and K. John. Measuring Benchmark Similarity Using Inherent Program Characteristics. IEEE Transactions on Computers, 55:769–782, 2006.
  4. N. P. Jouppi. Available Instruction-Level Parallelism for Superscalar and Superpipelined Machines. In Proceedings of the 3rd International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), pages 272–282. ACM Press, 1989.
  5. M. S. Lam and R. P. Wilson. Limits of Control Flow on Parallelism. In Proceedings of the 19th ISCA, pages 46–57. ACM Press, 1992.
  6. M. D. Smith, M. Johnson, and M. A. Horowitz. Limits on Multiple Instruction Issue. In Proceedings of the 3rd ASPLOS, pages 290–302. ACM Press, 1989.
  7. D. W. Wall. Limits of Instruction-Level Parallelism. In Proceedings of the 4th ASPLOS, pages 176–188. ACM Press, 1991.
  8. Livre: Conferência ISCA
  9. Livre: Conferência ASPLOS
  10. Livre: Tema Memory Wall

Trabalhos

Cada aluno deve fazer, individualmente, os trabalhos abaixo:

Apresentações

Cada aluno fará uma apresentação durante o semestre. A apresentação será sobre o tema do trabalho teórico escolhido.

Calendário

01/03Q Primeira aula. Apresentação e Motivação do Curso. Apresentação
06/03T Criando uma arquitetura multicore Building a Multicore Architecture
08/03Q Desempenho Speedup
13/03T Protocolos de Coerência de cache Coerência de Cache
15/03Q Protocolos de Coerência de Cache Coerência de Cache 2 (submissões)
20/03T Conceitos de Programação Paralela Conceitos de Programação Paralela (anotações)
22/03Q Conceitos de Programação Paralela Conceitos de Programação Paralela 2 (submissões)
27/03T Threads Threads (anotações)
29/03Q Prazo para entrega dos resumos 1, 2 e 3. Não haverá aula nesse dia.
03/04T Apresentação da atividade de US$2.000.000,00
05/04Q Feriado.
10/04T PThreads e OpenMP PThreads e OpenMP (anotações)
12/04Q Aula prática sobre PThreads e OpenMP. Sala 302. Exercício 1
17/04T Problemas e soluções ao programar com threads
19/04Q Aula na sala 302
24/04T Processador Cell
26/04Q Processador Cell. Último dia para entrega dos resumos 4, 5 e 6.
01/05T Feriado.
03/05Q Aula na sala 302
08/05T
10/05Q Aula na sala 302. Exercício 2
15/05T Apresentação (Arquiteturas não convencionais)
17/05Q
22/05T Apresentação (Stream Processing e Utilização de multiprocessadores em jogos)
24/05Q Apresentação (Arquitetura da família de processadores Core e Core 2 da Intel)
29/05T Apresentação (Virtualização)
31/05Q Apresentação (Memórias Transacionais). Último dia para entrega dos resumos 7, 8 e 9.
05/06T Apresentação (API Java para programação Multithreading)
07/06Q Feriado.
12/06T Não haverá aula
14/06Q Não haverá aula
19/06T Apresentação (Virtual Machines)
21/06Q Não houve aula
26/06T Apresentação (Arquitetura das famílias multicore da AMD)
28/06Q Apresentação (MPI - Message Passing Interface). Último dia para entrega do último resumo e do Trabalho 3.
10/07T Exame (apenas para os alunos de graduação).