Advertisement
Guest User

Untitled

a guest
Mar 29th, 2017
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1. #define N 6000
  2. #define M 3000
  3. #define P 1000
  4. int A[N][M];
  5. int B[M][P];
  6. int C[N][P];
  7. typedef struct {
  8. int threadNum;
  9. int maxThreads;
  10. } multParam
  11.  
  12. void *multiplier(void *param){
  13. int i,j,k, currentRow = 0;
  14.  
  15. multParam *threadData = (multParam *) (param);
  16.  
  17. for(i = threadData->threadNum; i < N; i+= threadData->maxThreads){
  18. for(j = 0; j < P; j++){
  19. C[i][j] = 0;
  20. for(k = 0; k < M; k++){
  21. C[i][j] += A[i][k] * B[k][j];
  22. }
  23. }
  24. }
  25. return 0;
  26. }
  27.  
  28. int main(){
  29. pthread_t tid[6];
  30. int i = 0;
  31. // creating array A
  32. for(int i = 0; i < N-1;i++){
  33. for(int j = 0; j < M-1; j++){
  34. A[i][j] = i*j;
  35. }
  36. }
  37. // creating array B
  38. for(int i = 0; i < M-1; i++){
  39. for(int j = 0; j < P-1; j++){
  40. B[i][j] = i+j;
  41. }
  42. }
  43.  
  44. for(i = 0; i < maxThreadCount; i++){
  45. paramArray[i] = malloc(sizeof(multParam));
  46. }
  47.  
  48. for(x = 1; x < 6; x++){
  49. for(i = 0; i < threadCount; i++){
  50. paramArray[i]->threadNum = i;
  51. paramArray[i]->maxThreads = threadCount;
  52. pthread_create(tid[i], &attr, multiplier, paramArray[i]);
  53. }
  54. }
  55.  
  56.  
  57.  
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement