Parfor and symmetric matrix
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Hi,
I need to fill in a matrix. Since it is symmetrical, the two for loops look like this
for i = 1 : m
for j = i : n
operation on the matrix ....
end
end
The other elements of the matrix are filled in by using "permute" (it is a 3D matrix).
I am now modifying the code to make it parallelizable. I tried with the parfor like this
parfor i = 1 : m
for j = i : n
operation on the matrix ....
end
end
At running time, I get the error because matlab does not know the value of "i". I guess this is because the two "for" are not independent.
My question is:
- is there a way to fill in a symmetric matrix by exploiting the symmetry, and using the parfor? Or shall I ignore the symmetry, have the second "for" starting from 1, and getting rid of "permute" ?
0 comentarios
Respuestas (1)
Matt J
el 12 de Ag. de 2021
Editada: Matt J
el 12 de Ag. de 2021
[I,J]=ndgrid(1:m,1:n);
keep=J>=I;
I=I(keep);
J=J(keep);
parfor k=1:numel(I)
i=I(k);
j=J(k);
operation on the matrix ....
end
4 comentarios
Ver también
Categorías
Más información sobre Parallel for-Loops (parfor) en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!