Mudanças entre as edições de "ADS29009-2019-1"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 1: Linha 1:
 +
=AULA 1 - Dia 26/07/2018=
  
 +
*Apresentar e Discutir Plano de Ensino
 +
*Conceitos em ADS
 +
 +
==Plano de Ensino==
 +
 +
*[http://wiki.sj.ifsc.edu.br/index.php/ADS-EngTel_(Plano_de_Ensino) Plano de Ensino]
 +
 +
==SLIDES DA AULA==
 +
 +
*[https://www.dropbox.com/s/stdiiq21gp5y3pd/IntroducaoAvaliacaoDesempenho.pdf]
 +
 +
==ATIVIDADE PROPOSTA==
 +
 +
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 um mini-relatório com dados do PC utilizado (número de cores), código, gráfico e discussão do resultado.
  
 
<code>
 
<code>
Linha 20: Linha 37:
 
     gettimeofday(&start, NULL);  
 
     gettimeofday(&start, NULL);  
 
    
 
    
        for (i=0; i<10000000000L; i++)  
+
                for (i=0; i<10000000000L; i++) {  
        {  
+
                }  
        }  
 
 
     gettimeofday(&end, NULL);   
 
     gettimeofday(&end, NULL);   
  

Edição das 15h54min 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 PROPOSTA

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 um mini-relatório com dados do PC utilizado (número de cores), código, gráfico e discussão do resultado.

//Modificado de https://www.geeksforgeeks.org/measure-execution-time-with-high-precision-in-c-c/

  1. include <sys/time.h>
  2. include <sys/types.h>
  3. include <unistd.h>
  4. 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++)  { 
               } 
   		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>