我正在处理一个项目,我们正在处理非常大的图像。管道有几个节点,每个节点都会产生下一个节点运行所需的输出。我的理解是 ParallelRunner 正在并行运行节点。它正在等待每个进程完成第一个节点,然后再移动到第二个节点,等等。我的问题是输入需要不同的时间才能完成。如此多的进程被卡在等待其他进程完成一个节点时,而这并不是必需的,因为每个并行进程不依赖另一个进程,只有它自己先前计算的结果。
有没有办法在不同的内核上并行运行整个管道?我不希望每个并行进程等待其他进程完成一个节点。我的想法是,我可以通过创建我的 kedro 项目的多个副本并修改它们的数据目录来处理数据集的不同部分,然后使用 subprocess 模块并行运行它们来实现这一点,但这似乎效率低下。