how to parallelize separate matrix-matrix multiplications?

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.

 채택된 답변

Brendan Hamm
Brendan Hamm 2018년 1월 25일
편집: Brendan Hamm 2018년 1월 25일

0 개 추천

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

For small matrices only one thread is used. If you have to multiply many of them, a parfor can be useful.
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.
Thanks a lot Brendan and Jan!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Parallel for-Loops (parfor)에 대해 자세히 알아보기

질문:

2018년 1월 25일

댓글:

2018년 1월 26일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by