Fiz em C um programa no Linux de multiplicação de matrizes de ordem 1000 A e B, (Ou seja, matrizes quadradas 1000x1000) que resulta em uma outra matriz C, só que agora eu tenho que adicionar threads e não sei como e nem aonde coloca-las. Eu preciso de 4 threads:
1 para calcular de 0 à 249;
2 para calcular de 250 à 499;
3 para calcular de 500 à 749;
4 para calcular de 750 à 999;
Segue código abaixo:
#include<time.h>#include<stdio.h>#include<stdlib.h>#include<pthread.h>int main(){pthread_t thread_1;pthread_t thread_2;pthread_t thread_3;pthread_t thread_4;int i;int j;int linhas;int colunas;int ordem;long T1;long T2;float delta;
printf("Digite a ordem das matrizes quadradas A e B: ");
scanf("%d",&ordem);
T1 = clock();
printf("\nAs matrizes quadradas A e B, são matrizes de ordem %d",ordem);
ordem = ordem -1;
linhas = ordem;
colunas = ordem;float A[linhas+1][colunas+1];float B[linhas+1][colunas+1];for(i =0; i <= linhas; i++){for(j =0; j <= colunas; j++){
printf("\n\nEntre com o valor da matriz A[%d][%d]: ",i+1,j+1);
scanf("%f",&A[i][j]);
printf("\nEntre com o valor da matriz B[%d][%d]: ",i+1,j+1);
scanf("%f",&B[i][j]);}}
printf("\nA multiplicacao das matrizes A e B:\n\n");for(i =0; i <= linhas; i++){for(j =0; j <= colunas; j++){float produto[linhas+1][colunas+1];for(int AUX =0; AUX <= ordem; AUX++){
produto[i][j]+= A[i][AUX]* B[AUX][j];}
printf("%.2f ",produto[i][j]);}
printf("\n");}
T2 = clock();
delta =(float)(T2-T1)/CLOCKS_PER_SEC;
printf("\n\nTempo %.5f segundos",delta);return0;}
Pergunta
PerguntasScript
Fiz em C um programa no Linux de multiplicação de matrizes de ordem 1000 A e B, (Ou seja, matrizes quadradas 1000x1000) que resulta em uma outra matriz C, só que agora eu tenho que adicionar threads e não sei como e nem aonde coloca-las. Eu preciso de 4 threads:
1 para calcular de 0 à 249;
2 para calcular de 250 à 499;
3 para calcular de 500 à 749;
4 para calcular de 750 à 999;
Segue código abaixo:
Desde já agradeço!
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.