使用 bash 文件运行两个 python 脚本

Ma *_*a Y 5 python windows bash

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

我搜索并看到了这个问题,说我们应该使用bash文件。我已经搜索过,但我不明白我应该做什么以及如何使用这种称为bash.

python script1.py &
python script2.py &
Run Code Online (Sandbox Code Playgroud)

我对此缺乏经验,我需要您的专业建议。我不明白如何做到这一点,在哪里以及如何做到这一点。我正在使用 Windows 64 位。

最好的事物

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.

Ale*_*vey 2

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

\n\n
\xe2\x96\xb6 (cat <<EOF) | parallel --jobs 2\npython script1.py\npython script2.py\nEOF\n
Run Code Online (Sandbox Code Playgroud)\n\n

并行手册页中的注释:

\n\n
\xe2\x96\xb6 (cat <<EOF) | parallel --jobs 2\npython script1.py\npython script2.py\nEOF\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n\n

请注意,该问题已更新为指出并行化不会缩短计算时间,这通常不是正确的说法。

\n\n

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

\n\n

以下是在我的四核 MacBook Pro 上使用 Spigot 算法(代码)计算 50,000 位 Pi 的演示:

\n\n

单任务(52秒):

\n\n
\xe2\x96\xb6 time python3 spigot.py\n...\npython3 spigot.py 52.73s user 0.32s system 98% cpu 53.857 total\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n
\xe2\x96\xb6 (cat <<EOF) | time parallel --jobs 2                                                                                                                                   \npython3 spigot.py                                                                                                                                                      \npython3 spigot.py                                                                                                                                                      \nEOF        \n...\nparallel --jobs 2  74.19s user 0.48s system 196% cpu 37.923 total\n
Run Code Online (Sandbox Code Playgroud)\n\n

当然,这是在一个忙于运行操作系统和所有其他应用程序的系统上,因此它不会将处理时间减半,但它仍然是一个很大的改进。

\n\n

另请参阅相关的 Stack Overflow 答案。

\n