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.

 Respuesta aceptada

Brendan Hamm
Brendan Hamm el 25 de En. de 2018
Editada: Brendan Hamm el 25 de En. de 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 comentarios

Jan
Jan el 25 de En. de 2018
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.
Yang
Yang el 26 de En. de 2018
Thanks a lot Brendan and Jan!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Creating and Concatenating Matrices en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 25 de En. de 2018

Comentada:

el 26 de En. de 2018

Community Treasure Hunt

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

Start Hunting!

Translated by