First example: matrix multiplication
Matrix multiplication is one of the basic operations that you can do with matrices and a classic problem used in concurrent and parallel programming courses. If you have a matrix A with m rows and n columns and another matrix B with n columns and p columns, you can multiply both matrices and obtain a matrix C with m rows and p columns. You can check https://en.wikipedia.org/wiki/Matrix_multiplication to find a detailed description about this operation.
In this section, we will implement a serial version of an algorithm to multiply two matrices and three different concurrent versions. Then, we will compare the four solutions to see when concurrency gives us a better performance.
Common classes
To implement this example we have used a class named MatrixGenerator
. We use it to generate random matrices to multiply. This class has a method named generate()
that receives the number of rows and columns you want in your matrix as parameters and generates a matrix...