我使用 python 'multiprocessing' 模块在多个内核上运行单个进程,但我想并行运行几个独立的进程。
例如,进程一解析大文件,进程二在不同文件中查找模式,进程三进行一些计算;可以并行运行所有这三个具有不同参数集的不同处理吗?
def Process1(largefile):
Parse large file
runtime 2hrs
return parsed_file
def Process2(bigfile)
Find pattern in big file
runtime 2.5 hrs
return pattern
def Process3(integer)
Do astronomical calculation
Run time 2.25 hrs
return calculation_results
def FinalProcess(parsed,pattern,calc_results):
Do analysis
Runtime 10 min
return final_results
def main():
parsed = Process1(largefile)
pattern = Process2(bigfile)
calc_res = Process3(integer)
Final = FinalProcess(parsed,pattern,calc_res)
if __name__ == __main__:
main()
sys.exit()
在上面的伪代码Process1、Process2 和Process3 是单核进程,即它们不能在多个处理器上运行。这些过程按顺序运行,耗时 2+2.5+2.25hrs = 6.75 hrs。是否可以并行运行这三个进程?这样它们就可以在不同的处理器/内核上同时运行,并且当大部分时间(Process2)完成时,我们就会进入最终进程。