Example 2 – matrix multiplication – process/thread

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
Note: None of this—the algorithm or code—is purported to be original or ground-breaking in any manner; these are well-known programs.

In the first model, one thread—

Get Hands-On System Programming with Linux now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.