19/06: Notas finais.
22/05: Tutorial sobre Plataformas Virtuais para o Projeto 3.
20/02: Acompanhamento e Notas.
19/02: Não perca das datas importantes do Calendário de graduação.
Aprimorar os conceitos aprendidos no curso de Projeto de Sistemas Computacionais. Reforçar conceitos de programação em grandes bases de código. Ao final desta disciplina, o aluno deverá ser capaz de:
A bibliografia recomendada para as atividades desta disciplina é:
Esta disciplina é composta por três projetos, a serem realizados durante o semestre. A nota final será a média geométrica das notas dos três projetos.
Os projetos serão realizados em grupos em torno de 3 participantes (ajustados pelo tamanho da turma). A composição e o tamanho dos grupos serão definidos pelo professor.
Qualquer tentativa de fraude durante o semestre será punida até o limite da minha autoridade, incluindo nota zero na disciplina para todos os envolvidos.
Os atendimentos acontecerão às segundas, das 18h-19h, na sala 3 do IC e às quartas, das 18h-19h, pelo monitor da disciplina (Thiago Santiago) na sala 361 do IC. Caso precise de atendimento em outro horário, basta combinar por email. Neste caso, envie o email já com uma sugestão de dia e horário para facilitar o atendimento.
Lembre-se que estarei em sala de aula durante todas as aulas do semestre.
Serão 3 projetos durante o semestre, cada um com 5 semanas para serem realizados. Os projetos devem ser realizados em grupo, onde todos os componentes do grupo devem estar cientes de todas as decisões tomadas, sendo capazes de justifica-las. Os projetos serão avaliados através de:
Objetivo: Desenvolver um benchmark com, ao menos, 5 componentes, para avaliar o desempenho de, ao menos, 5 equipamentos computacionais (ou parte deles) distintos.
Decisões de projeto: O que avaliar, como avaliar, que garantias este benchmark fornece, quais são as condições de contorno, etc.
Entregas: Este primeiro projeto tem uma exigência de acompanhamento mais de perto do professor, para auxiliar no desenvolvimento da metodologia. Espera-se um relatório parcial durante o período e um relatório final.
Critérios de avaliação: Clareza na definição dos critérios de avaliação de desempenho (O que você mediu? Como? Por que?). Capacidade de reproduzir os resultados obtidos nos computadores informados e também de adicionar novos computadores.
Relatório Final e Apresentação: 21/03, durante o período da aula.
Objetivo: Várias características de implementação afetam o desempenho de um processador, o objetivo deste projeto é avaliar o impacto de uma gama de características na execução de alguns programas. Para isto, vocês devem usar um simulador comportamental do processador e projetar o código referente à contabilização do impacto das características de implementação desejadas. Vamos utilizar o processador MIPS, o mesmo visto na disciplina teórica.
Decisões de projeto: Quais características de implementação afetam o desempenho do processador? Abaixo temos uma lista não exaustiva para servir de base.
Vocês devem utilizar o simulador MIPS baseado em ArchC (veja um tutorial), disponível no IC-3 e também para instalação na sua casa/notebook. Este simulador executa programas, compilados para MIPS, uma instrução por vez. Faz parte da sua tarefa implementar toda a contabilidade para prever o comportamento de uma execução conforme as funcionalidades acima. Não é esperado nem desejado que você implemente a execução em pipeline, apenas que consiga contabilizar os efeitos do pipeline.
Critérios de avaliação: Capacidade de implementar a contabilidade das funcionalidades acima. Você pode remover um dos 3 itens marcados entre parênteses na listagem anterior. Coerência entre os dados obtidos e um sistema real (os dados fazem sentido?). Capacidade de entender uma base grande de código e realizar pequenas modificações nela.
Roteiro: contendo a metodologia a ser seguida, em uma página, entregue impresso até o final da primeira aula, para comentários durante o período da aula pelo professor. Este será o roteiro do experimento que será feito nas demais aulas pelo grupo. Aproveitem a oportunidade da aula para tirarem dúvidas. Este roteiro terá peso de 20% na nota do projeto.
Relatório Final e Apresentação: 09/05, durante o período da aula. Enviar o relatório por email antes do período da aula. Limite de 5 páginas.
Ao final do seu relatório, inclua uma seção de resultados com uma tabela da forma:
Config. 1 | Config. 2 | ... | |||||
---|---|---|---|---|---|---|---|
Prog 1 | Prog 2 | Prog 3 | P1 | P2 | P3 | ... | |
Evento 1 | |||||||
Evento 2 | |||||||
Evento 3 | |||||||
... | |||||||
Ciclos | |||||||
Tempo |
onde Config. 1, Config. 2, ..., representam as configurações que você avaliou e Evento 1, Evento 2, ..., representam os eventos analisados. Ao final, totalize o número de ciclos e também a estimativa de tempo conforme conversado na entrega do Roteiro. Você deve ter as descrições e características das Configurações e Eventos no seu relatório. Note que não deve ser possível colocar todas as configurações nesta tabela, você terá que escolher as configurações mais relevantes. Como exemplo, depois de testar diversas configurações de cache, você pode escolher apenas uma (a melhor) e colocar nesta tabela, deixando os dados das outras apenas nas seções anteriores do relatório. Uma leitura da tabela na vertical, com alguns exemplos, pode ser: "Usando o processador com a configuração 1, descrita no texto, executando o programa xyz, utiliza X instruções (Evento 1), 200 cache misses (Evento 2), 150 hazzard de dados (Evento 3), ..., o que totaliza 1487 ciclos (número fictício) e equivale a um tempo de execução de 1ms."
Para a entrega, você deve ter respostas para as seguintes perguntas:
Neste projeto, cada grupo deverá modelar um sistema com até 8 cores, executar um software que tire proveito de paralelismo nele. Além disto, um módulo de hardware extra deverá ser criado (software offloading) para acelerar o desempenho deste software.
No roteiro, os grupos devem responder 3 perguntas:
Os grupos serão formados durante a aula como no Projeto 2.
Relatório Final e Apresentação: 13/06, durante o período da aula. Enviar o relatório por email antes do período da aula. Limite de 5 páginas.
Data | Atividade |
---|---|
21/fev | Roteiro do Projeto 1 |
28/fev | |
07/mar | |
14/mar | |
21/mar | Entrega do Projeto 1 |
28/mar | Roteiro do Projeto 2 |
04/abr | |
11/abr | |
18/abr | Não haverá atividades |
25/abr | |
02/mai | Não haverá atividades |
09/mai | Entrega do Projeto 2 |
16/mai | Roteiro do Projeto 3 |
23/mai | |
30/mai | |
06/jun | |
13/jun | Entrega do Projeto 3 |