Leia com atenção as instruções abaixo.
Valor: 1,0 ponto na 1ª Nota.
Data da Entrega Limite: 19/06/2021
double **mtxMul (double **c, double **a, double **b, int n) {
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++) {
c[i][j] = 0.0;
for (int k = 0; k < n; k++)
c[i][j] = c[i][j] + a[i][k] * b[k][j];
}
return c;
}
Suponha que duas matrizes 100 x 100 são multiplicadas usando 8 threads. Quantos produtos escalares, isto é, operações realizadas pelo laço for mais interno, cada thread deve calcular se as seguintes abordagens para paralelizar os dois laços for mais externos forem utilizadas:
Em seguida, complete o trecho de código acima para gerar um programa funcional e execute as três versões possíveis da paralelização do laço para matrizes quadradas de ordem 2000. Anote o tempo de execução através do campi real do comando time. Para ter uma noção mais exata, execute cada versão pelo menos 3 vezes e capture a média. Você acha que há uma grande diferença de desempenho para esse problema específico?