Português English
Contato

Lista de Disciplinas | CMP603

Tópicos Especiais em Computação DCIII – Desenvolvimento de Software de Baixa Energia

Carga horária / créditos: 4 horas aula/semana
Semestre oferecido: 2019/II
Professores: Luigi Carro

 

Objetivos

Com o fim da Lei de Moore o incremento de desempenho de processadores de propósito geral tornou-se mais difícil. Ao mesmo tempo, novas aplicações,  como Inteligência Artificial, Internet das Coisas e Saúde demandam cada vez mais velocidade de execução e eficiência energética. Neste novo cenário, onde o avanço da tecnologia é muito mais lento, os ganhos energéticos que os consumidores necessitam devem ser obtidospor melhores técnicas de desenvolvimento de software.

O objetivo da disciplina é capacitar o aluno a compreender as diferentes fontes de dissipação de energia de uma sistema com processadores, e através desta compreensão identificar alterações de software que possam ser feitas em algoritmos clássicos dos domínios acima definidos para melhorar a eficiência energética destas aplicações, possivelmente sem (ou com um mínimo de)modificações no hardware de execução.

 

Súmula

Revisão de conceitos básicos de energia e desempenho; ferramenta de simulação GEM5, simulação de consumo de energia na execução do software. Fontes de dissipação energética; organização CPU, Cache e memória. Execução paralela e dissipação de energia. Estratégias de economia de energia em CPUs e em máquinas multicore. Estruturas de dados e dissipação de potência. Algoritmos importantes dos domínios alvo e sua reescrita para minimização de dissipação energética.

 

Público Alvo:

Alunos da CIC e da ECP

 

Pré requisitos:

INF133, Arquitetura de Organização de Processadores

 

Critérios de Avaliação

O conceito final será obtido através de uma prova escrita (P1) e dois trabalhos práticos (T1 e T2), utilizando-se a seguinte ponderação:

média final total = 0.4 P1 + 0.4 T2 + 0.2 T1

O aluno que obtiver nota final abaixo de 6,0 (seis) deverá fazer uma recuperação escrita da parte correspondente da matéria (P1). Será considerado aprovado o aluno que alcançar uma média final total superior a 6,0.

Os conceitos serão distribuídos da seguinte forma:
A – Nota maior ou igual a 9,0
B – Nota menor que 9,0 e maior ou igual a 7,5
C – Nota menor que 7,5 e maior ou igual a 6,0
D – Nota menor que 6,0
F – Reprovação por frequência

Metodologia

A disciplina é apresentada em aulas teórico-práticas, nas quais são combinadas a apresentação de conceitos e técnicas, com a aplicação destes pelos alunos em exercícios e trabalhos práticos extraclasse. As 60 horas previstas para atividades teóricas e práticas indicadas neste Palno de Ensino incluem 30 encontros de 100 minutos de duração, neste Plano de Ensino incluem 30 encontros de 100 minutos de duração (2períodos de 50 minutos por encontro, 2 encontros por semana, durante 15 semanas), num total de 3.000 minutos, e mais10 horas (600 minutos) de atividades autônomas, realizadas sem contato direto como professor, correspondentes a exercícios e trabalhos extraclasse.

 

Experiências de aprendizagem

­- aulas expositivas
-­ trabalhos individuais e em grupos
– realização de trabalhos extra­classe

 

Bibliografia

  • PATTERSON e J.HENNESSY. Organização e Projeto de Computadores: a Interface Hardware/Software. LTC, Rio de Janeiro, 2000. (Segunda edição)
  • J.FLYNN. Computer Architecture – Pipelined and Parallel Processor Design. Jones and Bartlett Publishers, Sudbury, 1995.
  • JOHNSON. Superscalar Microprocessor Design. Prentice-Hall, Englewood Cliffs, 1991.
  • WILKINSON. Computer Architecture – Design and Performance. Prentice-Hall, Hemel Hempstead, 1996. (2a. edição).

Conteúdo programático

Semana TÓPICO
1 Apresentação da Disciplina, apresentação ambiente de simulação
2 Definição de potência e energia em sistemas computacionais
3 Caracterização de consumo energético em CPUs
4 Exercícios de consumo energético em CPUs
5 Caracterização de consumo energético em memórias (I)
6 Caracterização de consumo energético em memórias (II)
7 Estruturas de dados e consumo energético (I)
8 Estruturas de dados e consumo energético (II)
9 Caracterização de consumo energético em multicores
10 Caracterização de consumo energético em multicores
11 Caracterização de consumo energético em multicores
12 Estudo de caso em algoritmos populares
13 Estudo de caso em algoritmos populares
14 Estudo de caso em algoritmos populares
15 Apresentação de trabalhos e prova