并行运行python

时间:2016-10-06 15:23:31

标签: python bash parallel-processing

我有这个bash脚本:

#!/bin/bash
for i in `seq 1 32`;
do
python run.py file$i.txt &
if (( $i % 10 == 0 )); then wait; fi
done
wait

我想在64核的群集上运行它。如何在核心之间分配10个文件?如果我同时拥有10个免费核心,每个核心将采用一个文件,或者有更复杂的方式?此外,如果所有矿石都是免费的,我应该一次运行64个文件,否则如果我使用所有这些文件可能会遇到问题(因为程序可能因内存问题而放慢速度?

1 个答案:

答案 0 :(得分:0)

当您在paralel中从shell运行脚本时,您将过程管理的责任委派给OS调度程序,这不是一个坏主意,因为操作系统很清楚如何通过处理器内核处理进程,但有时您需要更多控制任务执行(可能是因为你将运行大量的任务)如果是这样的话,在我看来,最好的方法是使用python多处理模块运行你的任务并编写任务执行逻辑。