Computação Paralela - Atividade 03

Esta atividade deve ser colocada no repositório, nas pasta atividades/atividade03 sob o nome parallel_sum_a.c e parallel_sum_b.c.

Valor: 2,5 Pontos.

Data de Entrega: 04/08/2020.

Questão 01

Considere o código a seguir:

#include <stdio.h>
#include <omp.h>
#include <stdlib.h>

int main (int argc , char *argv[]) {
    int max; 
    sscanf (argv[1], "%d", &max);
    int ts = omp_get_max_threads ();
    if (max % ts != 0) return 1;
    int *sums = (int *) malloc(ts * sizeof(int));
    #pragma omp parallel
    {
        int t = omp_get_thread_num ();
        int lo = (max / ts) * (t + 0) + 1;
        int hi = (max / ts) * (t + 1) + 0;
        sums[t] = 0;
        for (int i = lo; i <= hi; i++)
            sums[t] = sums[t] + i;
    }
    int sum = 0;
    for (int t = 0; t < ts; t++) sum = sum + sums[t];
    printf ("%d\n", sum);
    free(sums)
    return 0;
}
        

Realize as seguintes alterações no código: