I need you to develop some software for me. I would like this software to be developed for Linux using C.
Write a multithreaded program in C under Linux using the pthread user-thread API to calculate the matrix
multiplication as described above. Your program should read one command-line parameter which is the
name of a file that contains the following data:
1. In the first line: three integers M, K and N, indicating the dimensions of matrices AMxK and BKxN
2. The matrix values, one row per line starting by matrix A, then matrix B.
3. This means that the file must contain 3+(M x K)+(K x N) values in 1+M +K lines.
The program (main thread) must then create M x N worker threads, each responsible for calculating one
element of matrix C, then it must wait for all the worker threads to finish. Each worker thread must write
one output line identifying itself in terms of the parameters passed to it and printing the result of its
calculation. The main thread shall then print the resulting matrix and terminate. Your program must
check for all possible errors and if there are some errors, it shall attempt correcting them by interacting
with the user or terminate gracefully after printing a useful error message.
All work should be in a single .zip file that contains ONLY three files:
a) Your C source program, fully documented and commented,
b) Your test data file as described above.
c) Your program output including: M, K, N, A, B and C.