如何使用 Python 创建 DAG(用于基于依赖项执行任务。)
how to create a DAG using Python (for Task execution based on dependencies.)
我正在尝试在 python 中编写一个程序,它将使用并行 and/or 串行执行尽可能高效地执行以下任务。这些任务中的每一个都有依赖关系,为了执行任务,必须执行其所有依赖关系。
即。只有之前执行过任务 B、C、D,才能执行任务 A。我们还可以看到任务 C、H、J 没有依赖关系,因此它们可以并行执行。
我知道这可以借助有向无环图来完成,但我不确定如何使用以下列表创建 DAG。非常感谢任何帮助。谢谢!!
"A" : ["B", "C", "D"],
"B" : ["E"],
"C" : [],
"D" : ["C", "F"],
"E" : ["H"],
"F" : ["B", "C"],
"G" : ["H", "C"],
"H" : [],
"I" : ["H", "C", "F"],
"J" : []
这称为“拓扑排序”。有几个 Python 模块可以做到这一点,包括 https://pypi.org/project/toposort/ 。请注意,Linux 包含可以执行此操作的命令行工具,tsort
,无需编程。
我正在尝试在 python 中编写一个程序,它将使用并行 and/or 串行执行尽可能高效地执行以下任务。这些任务中的每一个都有依赖关系,为了执行任务,必须执行其所有依赖关系。
即。只有之前执行过任务 B、C、D,才能执行任务 A。我们还可以看到任务 C、H、J 没有依赖关系,因此它们可以并行执行。
我知道这可以借助有向无环图来完成,但我不确定如何使用以下列表创建 DAG。非常感谢任何帮助。谢谢!!
"A" : ["B", "C", "D"],
"B" : ["E"],
"C" : [],
"D" : ["C", "F"],
"E" : ["H"],
"F" : ["B", "C"],
"G" : ["H", "C"],
"H" : [],
"I" : ["H", "C", "F"],
"J" : []
这称为“拓扑排序”。有几个 Python 模块可以做到这一点,包括 https://pypi.org/project/toposort/ 。请注意,Linux 包含可以执行此操作的命令行工具,tsort
,无需编程。