Effacer les filtres
Effacer les filtres

Nested for-Loops in parfor

3 vues (au cours des 30 derniers jours)
LD
LD le 22 Mar 2022
Commenté : LD le 10 Avr 2022
I try to put a for-loop in a parfor-loop. However, the following code is invalid.
parfor i=1:10
for j=1:10
a(j)=1;
end
end
The only way I know to fix that is
parfor i=1:10
for j=1:10
a(i,j)=1;
end
end
But I think it is inefficient when the size of "a" is large (I don't need "a" at the end of this program) . Is there a better way to implement this nested for-loop?
  1 commentaire
Edric Ellis
Edric Ellis le 23 Mar 2022
@Walter Roberson has provided you with a way to fix the problem. Just to explain the problem a little bit more - parfor insists on being able to prove that the iterations of your parfor loop are not (trying to be) order-dependent. In your original code, it appears as though the value of a as assigned when i==1 is still available on the next iteration when i==2. Walter's fix assigns a value to the whole of a, and this makes parfor satisfied that you cannot possibly access the old values of a in subsequent iterations.

Connectez-vous pour commenter.

Réponse acceptée

Walter Roberson
Walter Roberson le 22 Mar 2022
parfor i=1:10
a = zeros(10, 1);
for j=1:10
a(j)=1;
end
end
  1 commentaire
LD
LD le 10 Avr 2022
thanks

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Parallel for-Loops (parfor) dans Help Center et File Exchange

Tags

Produits


Version

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by