在Linux Shell脚本中并行运行Python命令

3

我有一个脚本,通过命令行参数从用户那里获取输入。它处理参数并开始运行Python命令。例如:

./run.sh p1 p2 p3 p4
python abc.py p1 p4
python xyz.py p2 p3 

其中,p1p2p3p4可以是任何类型。

我需要在两个不同的终端中并行运行这两个Python命令。如何做到不必等待一个命令完成才能启动下一个命令?

我尝试使用GNU Parallel,但似乎无法正常工作。


我曾经参与过一个使用并行处理技术进行水力模拟的Python项目,他们在该项目中使用了OpenMPI。如果您想了解他们是如何实现这个功能的,可以在他们的GitHub页面上找到相关内容:https://github.com/GeoscienceAustralia/anuga_core - Usagi
这里有一个很棒的答案:https://dev59.com/Amgv5IYBdhLWcg3wBMOg#10909842 - Bishwas Mishra
2个回答

3
尝试在命令末尾添加&将每个进程放入后台运行。
python script1.py arg1 arg2 &
python script2.py arg1 arg2 &

echo "Running scripts in parallel"
wait # This will wait until both scripts finish
echo "Script done running"

更多信息


1
请记得最后加上一个“等待”。 - Ole Tange

0

你的任务并不是 GNU Parallel 擅长的领域,但它是可以完成的:

parallel ::: "python abc.py p1 p4" "python xyz.py p2 p3"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接