Leia com atenção as instruções abaixo.
Valor: 2,0 pontos na 2ª Nota.
Data da Entrega Limite: 04/06/2022
Formato de Entrega: envie um .pdf com a resolução, feito em meios digitais, para o chat privado do professor no Slack.
A atividade é individual.
Abaixo você encontrará dois códigos sequenciais. Adicione pragmas OpenMP se for possível. Você terá que garantir que nenhuma dependência é quebrada e assim o algoritmo continua correto. Se o algoritmo for paralelizável, discuta sua estratégia de paralelização. Caso contrário, explique porque não pode ser paralelizado. Justifique suas afirmações.
for (i = 0; i < M; i++)
for (j = 0; j < N; j++) {
value_t sum = 0;
for (k = 0; k < L; k++)
sum += A[i*L+k] * B[k*n+j];
C[i*N+j] = sum;
}
#define AT(i,j) ((i)*(C+1) +(j))
#defina MAX(x,y) ((x)<(y)?(y):(x))
for (i = 1; i < N + 1; i++)
for (j = 0; j < C + 1; j++)
if (w[i-1] <= j)
m[AT(i,j)] = MAX(m[AT(i-1,j)], m[i-1, j-w[i-1]] + v[i-1]);
else
m[AT(i,j)] = m[AT(i-1,j)];