Trabalho 2: Profiling

Parte 1

  1. Verifique se você tem GCC instalado. Se não tiver, pode usar algum computador do NCC (mesmo remotamente).

  2. Baixe o arquivo dotprod_seq.zip. Ele contém o código fonte de um programa simples, que calcula o produto escalar de 2 vetores. Este programa permite configurar o tamanho dos vetores e o número de repetições do cálculo, para variar a carga de trabalho.

  3. Compile o programa:
    make
    

  4. Execute o programa com uma configuração "pequena", por exemplo:
    ./dotprod_seq 3000 10
    

  5. Execute o programa com uma configuração maior, por exemplo:
    ./dotprod_seq  30000000 90
    

  6. Edite o Makefile fornecido e habilite a flag de profiling (-pg).

  7. Recompile o programa e execute-o novamente. Ao final deve ser gerado um arquivo gmon.out.

  8. Use o profiling gprof para analisar o perfil da execução:
    gprof dotprod_seq
    

  9. Faça profiling do programa com diferentes configurações, observando os perfis gerados.

  10. Responda:
    • (a) O perfil é afetado pelas opções de configuração?
    • (b) Pelo perfil de execução, há alguma função que poderia ser candidata a paralelização? Por quê?

Parte 2

  1. Escolha um programa que você tenha desenvolvido, ou que seja desenvolvido por outros mas que você conheça o código. Pode ser um programa em qualquer linguagem, de preferência estruturado em vários subprogramas (procedimentos, funções, métodos...), e que possa ter a entrada variada facilmente.

  2. Escolha 2 profilers para a linguagem alvo e procure repetir os passos da Parte 1, adequando-os a possíveis diferenças.

  3. Observe e faça anotações sobre: (a) particularidades de instalação, recursos ou funcionamento dos profilers, (b) resultados obtidos e (c) dúvidas e/ou dificuldades encontradas.

Entrega

  • Este trabalho pode ser feito individualmente ou em dupla.

  • Para entregá-lo, crie um documento no Google Docs com:
    • Identificação completa da disciplina e do aluno (ou da dupla);
    • Sumário;
    • Seções separadas para a Parte 1 e a Parte 2;
    • Anotações, respostas, screenshots e quaisquer outras observações adicionais sobre cada um dos itens das Partes 1 e 2;
    • Referências.

  • Compartilhe o documento usando a opção avançada 'qualquer um com o link pode comentar'.

  • Preencha o link do documento na tabela enviada pela professora por e-mail.