関数 apply_ufuncのxarray ドキュメントには、次のように書かれています。
dask: ‘forbidden’, ‘allowed’ or ‘parallelized’, optional
How to handle applying to objects containing lazy data in the form of dask arrays:
‘forbidden’ (default): raise an error if a dask array is encountered.
‘allowed’: pass dask arrays directly on to func.
‘parallelized’: automatically parallelize func if any of the inputs are a dask array.
If used, the output_dtypes argument must also be provided.
Multiple output arguments are not yet supported.
並列コンピューティングに関するドキュメントのページには、次の注意事項があります。
dask によって既にラップされている NumPy 関数の大部分については、既存の xarray メソッドを使用するか、dask='allowed' を指定した apply_ufunc() を使用して、既存の dask.array 関数を使用することをお勧めします。dask='parallelized' によって提供される一般的な高速化とは異なり、Dask は多くの場合、問題の特殊な構造を利用するより効率的な実装を持つことができます。
ただし、これら 2 つのオプションの違いが何であるかについては、まだ明確ではありません。allowed
メモリ使用量を下げるために、まだチャンクを 1 つずつ操作しますか? 適用された ufunc がdaskallowed
操作のみを使用する場合でも並列化しますか? ufunc の出力 (つまり、引数, )parallelized
についてより多くの情報を提供する必要があるのはなぜですか?output_dtypes
output_sizes
allowed