MATLAB Answers

how to parallelize separate matrix-matrix multiplications?

8 views (last 30 days)
Yang
Yang on 25 Jan 2018
Commented: Yang on 26 Jan 2018
There are three matrix-matrix multiplications: C1=A1*B1, C2=A2*B2, C3=A3*B3.
If I wrote the code like above, the three matrix-matrix multiplications will be calculated in a sequential way. Is there an easy way to parallelize the three matrix-matrix multiplications (apart from using parfor)?
Apology if this question has been raised&answered before. I didn't find such a question after some quick search.

  0 Comments

Sign in to comment.

Accepted Answer

Brendan Hamm
Brendan Hamm on 25 Jan 2018
Edited: Brendan Hamm on 25 Jan 2018
Unless you are working on a cluster, I would not expect to see any speed up from parallelizing such operations. The reason for this is that a matrix multiplication is multi-threaded, meaning that each of these computations is already utilizing multiple cores on your machine.
If you are working on a cluster, you can assign each of these variables in an SPMD block and perform the computation on each machine separately.

  3 Comments

Jan
Jan on 25 Jan 2018
For small matrices only one thread is used. If you have to multiply many of them, a parfor can be useful.
Brendan Hamm
Brendan Hamm on 25 Jan 2018
This is a good point and useful for others who might happen upon this question, as according to Yang, there may not be similar posts. I was considering his question alone, but this is a better generalization of the concept.
Also, I edited the work hyper-threaded to multi-threaded, so as not to be hardware specific.

Sign in to comment.

More Answers (0)