用bash-fi运行两个python脚本

2024-04-26 20:42:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在我的笔记本电脑上同时运行两个python脚本,而不会降低它们的计算速度。在

我搜索并看到this question说我们应该使用bash文件。 我已经搜索过了,但是我不知道我应该做什么,以及如何用这种称为bash的方式运行这些股票。在

python script1.py &
python script2.py &

我没有这方面的经验,我需要你的专业意见。 我不知道怎么做,在哪里,怎么做。 我正在使用64位Windows。在

最佳

PS: The answer I checked the mark is a way to run in parallel two tasks, but it does not decrease the calculation time for two parallel tasks at all.


Tags: 文件thepy脚本bashparallel方式this
3条回答

我使用的批处理文件包含以下行:

start python script1.py
start python script2.py

这将为每个start语句打开一个新窗口。在

如果您可以在Git Bash(ref)下的Windows上安装GNU Parallel),那么您可以通过以下方式在不同的cpu上运行这两个脚本:

▶ (cat <<EOF) | parallel  jobs 2
python script1.py
python script2.py
EOF

来自并行手册页的注释:

^{pr2}$

注意,这个问题已经被更新,说明并行化并不能改善计算时间,这通常不是一个正确的说法。在

虽然并行化的好处是高度依赖于机器和工作负载,但并行化显著地改善了多核计算机上CPU限制的进程的处理时间。在

以下是在我的四核MacBook Pro上使用Spipot算法(code)计算50000位π的演示:

单个任务(52秒):

▶ time python3 spigot.py
...
python3 spigot.py 52.73s user 0.32s system 98% cpu 53.857 total

在GNU并行(74s)中运行相同的计算两次:

▶ (cat <<EOF) | time parallel  jobs 2                                                                                                                                   
python3 spigot.py                                                                                                                                                      
python3 spigot.py                                                                                                                                                      
EOF        
...
parallel  jobs 2  74.19s user 0.48s system 196% cpu 37.923 total

当然,这是在一个忙于运行操作系统和我所有其他应用程序的系统上实现的,所以它并没有将处理时间减少一半,但它仍然是一个很大的改进。在

另请参阅this相关堆栈溢出答案。在

运行各种并行作业的一种非常简单的方法是使用nohup。这会将输出重定向到文件调用不出来(默认情况下)。在你的情况下,你应该写下:

nohup python script1.py > output_script1 &
nohup python script2.py > output_script2 &

就这样。使用nohup,您也可以注销,脚本将继续,直到他们完成

相关问题 更多 >