Parallelization of matrix definiton

In my project I deal with matrices using up almost all the memory available. Logically the matrix is divided into blocks which can be computed independently from one another. Straight forward use of parfor as follows
parfor a = 1:N,
[M1] = func(a,par1, par2, par3);
N(i1(a):i2(a), i3(a):i4(a)) = M1;
end
does not work (the code is an example to illustrate the idea). Is there a way to establish parallel computing of these blocks?

Answers (1)

Jill Reese
Jill Reese on 14 Feb 2014
Without more context for your problem I cannot be sure, but you may find using distributed arrays inside an spmd block to be more useful than parfor in this case.

1 Comment

Thank you for your hint about spmd. If I get it right, matlab can do parallel computing inside the spmd statement if one uses matlab operations with parallel computing support build in. In my case I want to compute 'func' for different a in parallel. Can it be done with spmd?
Context: func produces a matrix ~100x100 elements which is then inserted into a larger matrix N with ~20000x20000 elements. N is a linear system of equations.

This question is closed.

Asked:

on 14 Feb 2014

Closed:

on 20 Aug 2021

Community Treasure Hunt

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

Start Hunting!