Matrix Multiplication – Using Multicore Programming (C++)
April 24, 2016
Categorised in: C++ Codes, OOMP Codes
/* Write a program for Matrix Multiplication using multicore programming. */ #include<iostream> #include<pthread.h> using namespace std; int MAT1[10][10],MAT2[10][10],MAT3[10][10]; int r1=3,c1=3,r2=3,c2=3; void *multi(void *p) { int i=0; i= (int &)p; for(int j=0;j<3;j++) { //MAT3[i][j]=0; for(int k=0;k<3;k++) { MAT3[i][j]=MAT3[i][j]+(MAT1[i][k]*MAT2[k][j]); } } } void read_mat(int MAT[10][10], int r, int c) { cout<<"Enter the elements in matrix...: "<<endl; for(int i=0;i<r;i++) { for(int j=0;j<c;j++) { cout<<"Enter the elements for row and column here: "<<endl; cin>>MAT[i][j]; } } } void print_mat(int MAT[10][10], int r, int c) { cout<<"\n"; for(int i=0;i<r;i++) { cout<<"\n"; for(int j=0;j<c;j++) { cout<<MAT[i][j]<<"\t"; } cout<<"\n"; } } main() { pthread_t tid[3]; read_mat(MAT1,r1,c1); read_mat(MAT2,r2,c2); cout<<"MATRIX 1"<<endl; print_mat(MAT1,r1,c1); cout<<"MATRIX 2"<<endl; print_mat(MAT2,r2,c2); for(int i=0;i<3;i++) { pthread_create(&tid[i],NULL,multi,(void *)i); } for(int i=0;i<3;i++) { pthread_join (tid[i],NULL); } cout<<"FINAL MATRIX"<<endl; print_mat(MAT3,r1,c2); }
Pratik Kataria is currently learning Springboot and Hibernate.
Technologies known and worked on: C/C++, Java, Python, JavaScript, HTML, CSS, WordPress, Angular, Ionic, MongoDB, SQL and Android.
Softwares known and worked on: Adobe Photoshop, Adobe Illustrator and Adobe After Effects.