Parallel processing 与Python并行运行子进程

Parallel processing 与Python并行运行子进程,parallel-processing,multiprocessing,subprocess,Parallel Processing,Multiprocessing,Subprocess,我试图理解如何为多个子流程构建并行计算管道。 如我所见,每个子流程块都等待前一个代码块运行,而我有一个管道,它对前一个运行没有依赖关系,可以并行处理。我想了解这是否可行,如果可能的话,一个演示如何实现这一点的示例语法将非常有帮助!提前谢谢 import sys import os import subprocess subprocess.run("python pipelinecode1.py".split() + [run_date, this_wk, las

我试图理解如何为多个子流程构建并行计算管道。 如我所见,每个子流程块都等待前一个代码块运行,而我有一个管道,它对前一个运行没有依赖关系,可以并行处理。我想了解这是否可行,如果可能的话,一个演示如何实现这一点的示例语法将非常有帮助!提前谢谢

import sys
import os
import subprocess


subprocess.run("python pipelinecode1.py".split() +
               [run_date, this_wk, last_wk, prev_wk], shell=True)

subprocess.run("python pipelinecode2.py".split() +
               [run_date, this_wk, last_wk, prev_wk], shell=True)

subprocess.run("python pipelinecode3.py".split() +
               [run_date, this_wk, last_wk, prev_wk], shell=True)

MCVE原样显示了对python解释器的零依赖性,因此运行一组相互独立的任务(不是管道,其中一个步骤接一个顺序的处理步骤“forms”“pipeline”)的最有效步骤是GNU
parallel

$ parallel python {} run_date this_wk last_wk prev_wk ::: pipelinecode1.py \
                                                          pipelinecode2.py  \
                                                          pipelinecode3.py
这样,您就不会浪费CPU/缓存资源,也不会避免重新引入的阻塞和GIL锁,从而在不增加任何额外开销的情况下重新执行代码


对于所有可用的配置程序,请阅读
manparallel

中的相关详细信息。我不熟悉您建议的语法,是否要在cmd上运行它?我正在使用Atom作为编辑器。@CagdasKanar是的,这是标准的GNU软件包,安装它,如果到目前为止还没有安装,请阅读手册页并自由配置任何其他可用的技巧,以便从终端运行此软件包并享受其功能