Advertisement
Guest User

Untitled

a guest
Nov 20th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. void *ThreadMatMultPerRow(void* param){
  2.  
  3. MatMultParams_t* data = (MatMultParams_t*)param;
  4. double** newA = initMatrix(1,data->A_c);
  5. double** newC = initMatrix(1,data->B_c);
  6.  
  7. pthread_t* threads = (pthread_t*)malloc(data->A_r*sizeof(pthread_t));
  8. // printf("rfgvsdvsdfv%d",data->A_r);
  9. MatMultParams_t* newdata1 = (MatMultParams_t*)malloc(sizeof(MatMultParams_t));
  10. memcpy(newdata1,data, sizeof(MatMultParams_t));
  11.  
  12. for(int i=0; i<data->A_r;i++){
  13. MatMultParams_t* newdata = (MatMultParams_t*)malloc(sizeof(MatMultParams_t));
  14. newdata->A=newdata1->A;
  15. newdata->A_r=newdata1->A_r;
  16. newdata->A_c=newdata1->A_c;
  17. newdata->B=newdata1->B;
  18. newdata->B_c=newdata1->B_c;
  19. newdata->B_r=newdata1->B_r;
  20. newdata->C=newdata1->C;
  21. printf(" A_r %d i:%d /n ",data->A_r,i);
  22. newA[0]=data->A[i];
  23. newC[0]=data->C[i];
  24. newdata->A_r=1;
  25. newdata->A=newA;
  26. newdata->C=newC;
  27. pthread_create(&threads[i],NULL,nonThreadedMatMult,newdata);
  28.  
  29.  
  30. }
  31.  
  32. for(int i=0; i<data->A_r;i++) {
  33. pthread_join(threads[i],NULL);
  34.  
  35. }
  36. return 0;
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement