Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void *ThreadMatMultPerRow(void* param){
- MatMultParams_t* data = (MatMultParams_t*)param;
- double** newA = initMatrix(1,data->A_c);
- double** newC = initMatrix(1,data->B_c);
- pthread_t* threads = (pthread_t*)malloc(data->A_r*sizeof(pthread_t));
- // printf("rfgvsdvsdfv%d",data->A_r);
- MatMultParams_t* newdata1 = (MatMultParams_t*)malloc(sizeof(MatMultParams_t));
- memcpy(newdata1,data, sizeof(MatMultParams_t));
- for(int i=0; i<data->A_r;i++){
- MatMultParams_t* newdata = (MatMultParams_t*)malloc(sizeof(MatMultParams_t));
- newdata->A=newdata1->A;
- newdata->A_r=newdata1->A_r;
- newdata->A_c=newdata1->A_c;
- newdata->B=newdata1->B;
- newdata->B_c=newdata1->B_c;
- newdata->B_r=newdata1->B_r;
- newdata->C=newdata1->C;
- printf(" A_r %d i:%d /n ",data->A_r,i);
- newA[0]=data->A[i];
- newC[0]=data->C[i];
- newdata->A_r=1;
- newdata->A=newA;
- newdata->C=newC;
- pthread_create(&threads[i],NULL,nonThreadedMatMult,newdata);
- }
- for(int i=0; i<data->A_r;i++) {
- pthread_join(threads[i],NULL);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement