変更可能なオブジェクトがある場合、たとえば dict としましょう。dask はそれを遅延関数への入力として渡すことをどのように処理しますか? 具体的には、遅延呼び出しの間に dict を更新するとどうなりますか?
いくつかのコピーが行われていることを示唆しているように見える次の例を試しましたが、dask が何をしているのか正確に説明できますか?
In [3]: from dask import delayed
In [4]: x = {}
In [5]: foo = delayed(print)
In [6]: foo(x)
Out[6]: Delayed('print-73930550-94a6-43f9-80ab-072bc88c2b88')
In [7]: foo(x).compute()
{}
In [8]: p1 = foo(x)
In [9]: x['a'] = 1
In [10]: p2 = foo(x)
In [11]: p1.compute()
{}
In [12]: p2.compute()
{'a': 1}