parfor loop exit: deterministic concurrent?
2 views (last 30 days)
Show older comments
Holger I. Meinhardt
on 5 Feb 2017
Commented: Holger I. Meinhardt
on 6 Feb 2017
I have a set of independent problems, which I can transfer to a parfor loop. The return value of each of these iterations is false or true. To shorten the computation, I want to exit the parfor loop at the first time the return value "true" has materialized (deterministic concurrent). How can I accomplish this task?
0 Comments
Accepted Answer
Walter Roberson
on 5 Feb 2017
The documentation indicates
"If you change parfor to for, the use of s outside the reduction assignment relies on the iterations being performed in a particular order. In a parfor-loop, it matters that the loop "does not care" about the value of a reduction variable as it goes along. It is only after the loop that the reduction value becomes usable."
so there is nothing you can check in the loop to determine whether you should continue. Though I guess you could write to a file and check the file.
Cleaner would be to parfeval() and as the results come back, when you finally get a true, cancel the remaining futures.
More Answers (0)
See Also
Categories
Find more on Parallel for-Loops (parfor) in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!