Mudanças entre as edições de "ADS29009-2019-1"
Ir para navegação
Ir para pesquisar
Linha 16: | Linha 16: | ||
O código abaixo permite estimar o tempo de execução do programa (processo) para executar um determinado loop. | O código abaixo permite estimar o tempo de execução do programa (processo) para executar um determinado loop. | ||
Modificar o programa e gerar um gráfico mostrando a média do tempo de execução para uma faixa de 1 até 100 processos. | Modificar o programa e gerar um gráfico mostrando a média do tempo de execução para uma faixa de 1 até 100 processos. | ||
− | Discutir o resultado. Postar no SIGAA um mini-relatório com dados do PC utilizado (número de cores) | + | Discutir o resultado. Postar no SIGAA um mini-relatório com: |
+ | |||
+ | *objetivo do experimento | ||
+ | *dados do PC utilizado (número de cores); | ||
+ | *código modificado; | ||
+ | *gráfico tempo médio x número de processos; | ||
+ | *discussão do resultado. | ||
<code> | <code> |
Edição das 16h00min de 12 de fevereiro de 2019
AULA 1 - Dia 26/07/2018
- Apresentar e Discutir Plano de Ensino
- Conceitos em ADS
Plano de Ensino
SLIDES DA AULA
ATIVIDADE 1
O código abaixo permite estimar o tempo de execução do programa (processo) para executar um determinado loop. Modificar o programa e gerar um gráfico mostrando a média do tempo de execução para uma faixa de 1 até 100 processos. Discutir o resultado. Postar no SIGAA um mini-relatório com:
- objetivo do experimento
- dados do PC utilizado (número de cores);
- código modificado;
- gráfico tempo médio x número de processos;
- discussão do resultado.
//Modificado de https://www.geeksforgeeks.org/measure-execution-time-with-high-precision-in-c-c/
- include <sys/time.h>
- include <sys/types.h>
- include <unistd.h>
- include <stdio.h>
int main()
{
long int i;
double tempo_bloco;
for (i=0;i<23;i++) {
if (fork()==0) {
struct timeval start, end;
gettimeofday(&start, NULL);
for (i=0; i<10000000000L; i++) { // loop de interesse
}
gettimeofday(&end, NULL);
tempo_bloco = (end.tv_sec - start.tv_sec) * 1e6;
tempo_bloco = (tempo_bloco + (end.tv_usec -
start.tv_usec)) * 1e-6;
printf("Tempo = %lf\n", tempo_bloco);
return 0;
}
}
}
</syntaxhighlight>