如何获取Dask数组task-graph的总节点数量
统计Dask数组Task Graph总节点数的方法
你要的总节点数就是任务图字典中所有键的总数,可通过以下两种常用方式获取:
方法1:通用统计方法(推荐,适配所有场景)
使用collections_to_dsk工具函数拉取完整的任务图依赖,避免漏掉多层嵌套的任务节点:
import dask.array as da from dask.base import collections_to_dsk # 示例Dask数组计算链路 arr = da.random.random((10000, 10000), chunks=(1000, 1000)) res = arr.dot(arr.T).mean(axis=1).sum() # 统计总节点数 full_task_graph, _ = collections_to_dsk([res]) total_task_count = len(full_task_graph) print(f"任务图总节点数量:{total_task_count}")
方法2:快速统计(仅适用简单无跨依赖的计算链路)
如果你的计算逻辑没有引用多个独立的Dask集合,也可以直接访问Dask对象内置的dask属性统计:
# 接上面的示例代码,直接统计 print(len(res.dask))
注意:统计节点数时不要提前执行.compute()方法,否则会直接触发任务计算,无法拿到原始任务图的统计数据
内容的提问来源于stack exchange,提问作者fmfreeze
相关产品推荐
相关产品推荐

