A well-known exercise is to write a program to compute the (dot) product of two given matrices. Essentially, we would like to perform the following:
matrix C = matrix A * matrix B
Again, we emphasize the fact that here, we are not really concerned with the details of the algorithm (and code); what concerns us here is how, at a design level the matrix multiplication is performed. We propose (and write the corresponding code for) two ways:
- Sequentially, via the single threaded model
- In parallel, via the multithreaded model
In the first model, one thread—