Matrix Multiplication
Matrix multiplications either with a vector or another matrix are
important cases where parallel computing becomes necessary.
This happens when the size of the matrix becomes very large.
For a NxN matrix one needs N2  elements.
For example for a complex matrix in double precision one requires
16 N2   bytes
    of memory.
A matrix – vector multiplication takes N multiplications and N – 1
additions while a matrix – matrix multiplication takes N3
multiplications and N3 – N2 additions.
If the numbers are complex each multiplication 4 real multiplications
and two additions while each addition is 2 real additions.
On a 324 lattice even the simplest algorithm involves 5 billion
double precision multiplications per sweep of the lattice and one
needs thousands of sweeps.