MC723 - Laboratório de projetos de sistemas computacionais

Informações Gerais

Professor: Rodolfo Jardim de Azevedo (email)

Aula: Ter: 08h-12h

Atendimento: Enviar email marcando, indicando preferência de horário. Vejam mais detalhes na seção de atendimento abaixo.

Sala: CC01/CC02

Avaliação

Veja Também

Avisos

14/06
Todos os membros dos grupos devem estar presentes na apresentação do dia 22/06. A ausência de um dos membros do grupo impedirá a apresentação.
14/06
Notas parciais nesta planilha. Dúvidas quanto às avaliações, procurem-me na sala de aula ou agendem um horário.
24/05
Veja instruções detalhadas sobre o trabalho mais abaixo nesta página.
24/05
Houve uma queda prolongada na rede da Unicamp e o prazo de entrega do Exercício 6 foi ampliado em 2 dias.
17/05
Alunos sem grupos foram agrupados na planilha. Vocês ainda podem alterar os grupos até a próxima semana (25/05). Todos os temas devem ser definidos até esta data. Procurem-me antes para conversar.
04/05Montem seus grupos para o trabalho da disciplina utilizando esta planilha.
26/04Houve um problema com o Susy, agora esta OK. Aumentei o prazo em um dia. Enviem apenas o relatorio.
24/03Site colaborativo para dúvidas de alunos. Utilize tag mc723.
08/03
Mudada a forma de submissão das atividades. Todas as submissões agora serão feitas via Susy. Pegar as senhas comigo no horário de aula.
01/03Modelo de Relatório.
01/03 Datas importantes do calendário de graduação.

Objetivos

Aprimorar os conceitos aprendidos no curso de Projeto de Sistemas Computacionais através de exercícios e da modelagem de sistema(s) com processador(es) e periférico(s). Reforçar conceitos de programação em grandes bases de código.

Atividades

O semestre será dividido em duas partes: exercícios e projeto. Na parte de exercícios, cada aluno implementará pequenas atividades para garantir o entendimento de alguns tópicos básicos. Na segunda parte, cada grupo implementará um projeto que será definido até o meio do semestre.

Todas as entregas possuem uma carência automática de 24 horas, mas não aceitarei nenhuma justificativa de adiamento com base em fatos ocorridos nessas 24 horas. A carência não é válida se ultrapassar o limite do período letivo.

Bibliografia

Os documentos online, referenciados aqui, também estão disponíveis no meu homedir do IC3 (cd ~rodolfo/mc723).

Atendimento

Além do horário reservado para a disciplina, posso atender os alunos em vários horários alternativos, incluindo pedaços do horário do almoço e também horários no início da noite (até 20h).

Para facilitar seu atendimento, procure marcar por email para garantir que eu esteja disponível no dia. Envie uma mensagem sugerindo um horário de atendimento (olhe minha agenda atualizada). Se você quer me demonstrar algum código, procure tê-lo instalado na máquina ssh.students.ic.unicamp.br para que seja fácil demonstrar na hora (por favor, evite trazer algo para instalar na minha máquina, minha experiência diz que teremos grande trabalho para instalar).

Exercícios

Todos devem fazer, individualmente, cada um dos exercícios a seguir:

Os exercícios deverão ser realizados predominantemente em sala de aula.

Trabalhos

Vejam os prazos de entrega no calendário:

Cada entrega deve ser na forma de um relatório com tamanho máximo de 2 páginas. Todos os grupos devem guardar o código definido por cada entrega para apresentação. Haverá um sorteio para as fases intermediárias e todos os grupos farão uma apresentação final diretamente com o professor.

O que é o trabalho

O trabalho consiste em montar uma plataforma com, no mínimo, 2 processadores e 2 periféricos novos (você pode utilizar todos os periféricos feitos até agora, mas terá que criar 2 novos). Esta plataforma deverá executar um software que deve tirar proveito do paralelismo oferecido. Vocês estão liberados para escolherem o programa, não deve ser nenhum dos programas utilizados no exercício 6. Sugestões de programas: os escolhidos no exercício 3, um dos programas do benchmark SPLASH-2, ou qualquer outro que você possa extrair paralelismo.

Os dois periféricos devem ser criados para aumentar o desempenho da plataforma. Utilize profilling para descobrir o que melhorar do código, migre para periféricos esta parte do código conforme o Exercício 4. Você não precisa utilizar as caches implementadas no Exercício 5.

Seu programa tem que trabalhar de forma paralela. Não vale executar a primeira parte no primeiro processador enquanto o segundo fica parado e, depois, executar a segunda parte no segundo processador enquanto o primeiro fica parado. Você, provavelmente, vai precisar do periférico de Lock, da implementação de barreiras, etc. Este periférico não conta como um dos dois solicitados pois já deve ter sido implementado no exercício 4.

Relatório da Especificação Detalhada

Este é o primeiro relatório onde o grupo deve descrever, em detalhes, o que será feito no trabalho. O limite é de 2 páginas, por isto, escreva apenas o necessário. Recomendo que siga as seguintes partes:

  1. Introdução: Apresente superficialmente o que é esperado de sua plataforma: funcionalidades, características, componentes, motivação para criá-la, um diagrama geral da plataforma pode ser útil para as seções futuras, etc
  2. Componentes da plataforma: Crie uma subseção para cada um dos componentes e indique questões relevantes sobre cada um deles. Ex.: protocolo de comunicação, interface com o software, restrições, forma de implementação (ao menos uma meta), etc.
  3. Software: O que será feito em software, como vai funcionar, o que vai ser executado em cada processador, etc.
  4. Espaço de endereçamento utilizado pelos periféricos.
  5. Alocação de atividades aos componentes do grupo: Se o grupo vai dividir as atividades, indicar quais ficarão com cada componente.

Formato da entrega

As entregas serão via Susy. Utilize a senha de um dos componentes do grupo (se dois componentes do grupo enviarem os arquivos, eu escolherei o que vou avaliar). Veja os detalhes da entrega abaixo e no calendário:

Qualquer entrega fora da especificação que não contar com um acordo prévio com o professor será terminantemente desconsiderada.

Calendário

02/03T Apresentação da disciplina e Exercício 1.
09/03T

16/03T
Exercício 2
23/03T

30/03T
Exercício 3
06/04T

13/04T
Exercício 4
20/04T

27/04T
Exercício 5
04/05T

11/05T
Exercício 6
18/05T

25/05T
Trabalho: Composição dos Grupos e Definição do Tema até 8h.
01/06T
Trabalho: Entrega da Especificação até 8h. Apresentação da especificação por pelo menos um dos membros do grupo durante o horário da aula.
08/06T

15/06T

22/06T
Trabalho: Entrega Final e Apresentação (sem carência)
29/06T
Divulgação de notas