是否可以对xarray执行以下操作:
主流程创建维度为a = [a1, a2,...], b=[b1,b2, ...], c = [c1,c2,...]
的数据集
然后,对于每个坐标(键)(a_i, b_j, c_k,...)
,它启动一个计算f(a_i, b_j, c_k, ...)
的子进程(可能是在完全不同的计算机上的作业请求)
函数f
返回一个固定形状的DataArray
,即坐标为x = [x1,x2,...], y=[y1, y2, ..], z = [z1, z2, ...]
。
请注意,此形状是先验未知的!!只能保证在所有任务中保持不变!
每个子进程都应使用相应的键dataset.nc
将其输出保存(追加)到(a_i, b_j, c_k)
文件中(并行io)
所有子流程完成后,即整个数据集填充完毕后,主流程将其重塑为单个DataArray
形式,该形式结合了两个维度(因此与轴a,b,c,...
相同,和 x,y,z,...
)
注意:这实质上是尝试实现具有并行化的抽象自动网格搜索。