しばらくの間、研究に Matlab を使用していますが、並列コンピューティングについてもっと学びたいと思っています。Parfor は非常に便利な手法のようです。次のコードでは動作しません。
resultsOfRW = ones(100,N);
parfor i= 1:100
RWs{i} = A; %I want to modify A in every iteration
j = 1;
S = 2; %just something larger than 1
while j <= N && S > 1
RWs{i} = DoSomethingRandomly(RWs{i}); % Make some (stochastic) change to RWs{i}
S = GetSomeResultFrom(RWs{i});
resultOfRW(i,j) = S; %This is invalid
j = j+1;
end
end
これで、スライスされた変数には無効なインデックス j に関係していることがわかりました。しかし、これを並行して実行することは完全に有効であるため、その理由はわかりません。
理由は別として、これを実装して並行して実行するにはどうすればよいですか?