MATLAB Answers

Sasha
0

Parallelization of matrix definiton

Asked by Sasha
on 14 Feb 2014
Latest activity Commented on by Sasha
on 14 Feb 2014
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?

  0 Comments

Sign in to comment.

1 Answer

Answer by 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

Sasha
on 14 Feb 2014
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.

Sign in to comment.