Atividade 09
Leia com atenção as instruções abaixo.
Valor: 2,0 pontos na 2ª Nota.
Data da Entrega Limite: 01/07/2022
Formato de Entrega:
- Um .pdf como as respostas primeira questão.
A entrega deve ser feita via chat privado no Slack.
A atividade é individual.
Questão 01 - 2,0 Pontos
Considere o código abaixo:
#include <stdio.h>
#include <unistd.h>
#include <omp.h>
int main(int argc, char *argv[]) {
int max;
sscanf(argv[1], "%d", &max);
long int sum = 0;
#pragma omp parallel for reduction(+:sum) schedule(runtime)
for (int i = 1 i <= max; i++) {
printf(" %2d @ %d\n", i, omp_get_thread_num());
sleep(i < 4 ? i + 1 : 1);
sum = sum + i;
}
printf("%ld\n", sum);
return 0;
}Responda os seguintes itens:
- Suponha que 4 threads são utilizados e max = 20. Determine que iteração será executada por qual thread se as estratégias de escalonamento forem static,1, static,2 ou static,3. Tente definir sem executar o programa primeiro. (Assuma que iterações 1, 2 e 3 requerem 2, 3 e 4 unidades de tempo enquanto todas as outras requerem apenas 1 unidade de tempo).
- Suponha que 4 threads são utilizados e max = 20. Determine que iteração será executada por qual thread se as estratégias de escalonamento forem dynamic,1, dynamic,2 ou dynamic,3. A distribuição será sempre a mesma? (Assuma que iterações 1, 2 e 3 requerem 2, 3 e 4 unidades de tempo enquanto todas as outras requerem apenas 1 unidade de tempo).
Você pode fazer uma tabela para demonstrar cada caso.