は、私は、次のようなものを持って言う:ジュリア:(PMAPからの早期復帰)
function f(x)
some_test ? true : false
end
私はpmap(f,some_array)
をすれば、私はBoolsの一部の配列を取得します。 contains(==,p,false)
の場合は何かしたいと思います。しかし、少なくとも私がfalse
を1つだけ持っているなら、私はこのことをしたいと思います。私。 some_array
が非常に大きい場合、pmap
は最初に見つかるはずですfalse
。
some_test
がかなり関わっている可能性がありますので、私は並列のforループを使用することをお勧めします。
例えば私は
p = pmap(f,some_array,[N for i = 1:some_large_value])
if contains(==,p,false)
return false
else
return true
end
を持っていると、どのように私は101:some_large_value
をチェックからpmap
を停止することができたときにi=100
false
が表示された場合は?
私がしたい動作の別の例として、?pmap
からこの例を取ってください。
julia> pmap(x->iseven(x) ? error("foo") : x, 1:4; on_error=ex->0)
4-element Array{Int64,1}:
1
0
3
0
代わりのon_error=ex->0
私も最初にreturn
へpmap
をしたいと思います。何かのように
pmap(x->iseven(x) ? return : x, 1:4)
という結果になります。
これは私がこのパターンに対する質問/要求を見たのは3回目です。一度これは私の答えでした:https://stackoverflow.com/questions/43428477/julia-parallel-for-loop-with-return-statement/43545623#43545623おそらくそれは何とか役立つかもしれません。 –
@DanGetz私はそのポストを見て、それの後に私の最初の試みをモデル化しました。しかし、 'some_array'で' f'が行う作業は大幅に変わる可能性があります。これは、すべての作業者が最も遅く結ばれているので、@パラレルの動作が遅くなります。 https://stackoverflow.com/questions/37846838/what-exactly-is-the-difference-between-parallel-and-pmap?rq=1を参照してください。 –