You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@distributed for (i, j) in Base.Iterators.product([1, 2], [3, 4])
@show i + j; i + j
end
This should error, as in #57, but no error is reported. The code silently never runs the contents of the distributed loop. If you tack on a @sync or even put in a reduction, i.e. @distributed (*) then the error is reported properly.
This is relevant to my use-case where I set up a RemoteChannel and listen to it after running the @distributed loop asynchronously.
julia> versioninfo()
Julia Version 1.3.0
Commit 46ce4d7933 (2019-11-26 06:09 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
CPU: Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-6.0.1 (ORCJIT, skylake)
The text was updated successfully, but these errors were encountered:
When you do a t = @distributed for, you get back a task. The task's value is always nothing after all the workers come back. You can explicitly make sure no task errored with a fetch(t) — this is how you can check for both iteration space errors as well as errors inside the distributed work. In this case (#30343), I think we could probably detect it ahead of time and give a nicer error. But there may be interior errors that you'd probably want to check, too — and I'm not sure we can do anything there.
For a simple example:
This should error, as in #57, but no error is reported. The code silently never runs the contents of the distributed loop. If you tack on a
@sync
or even put in a reduction, i.e.@distributed (*)
then the error is reported properly.This is relevant to my use-case where I set up a RemoteChannel and listen to it after running the
@distributed
loop asynchronously.The text was updated successfully, but these errors were encountered: