Shell-Script

如何使用 GNU Parallel 同時執行程序?

  • December 2, 2021

我需要多次並行執行 python 腳本,但我已經像這樣在後台執行了它

ipython program.py & ipython program.py & ...

我想知道這種方式是每次執行使用一個核心還是只使用執行緒執行 program.py。順便說一句,我想探索 GNU Parallel 的使用,但我發現的例子是關於“find”的“cat”之類的命令。我如何使用 GNU Parallel 同時執行 program.py,每次都在不同的核心中?謝謝你的幫助。

我如何使用 GNU Parallel 同時執行 program.py,每次都在不同的核心中?

您(幾乎)永遠不想將程序與某個核心掛鉤。通常你不關心哪個核心在做這項工作。通常您只想為系統中的每個 CPU 執行緒執行一項作業。

使用GNU Parallel 很容易做到這一點:

seq 1000 | parallel ipython program.py

這將執行ipython program.py 1..ipython program.py 1000但每個 CPU 執行緒只能並行執行一項作業。因此,在具有超執行緒(即 16 個 CPU 執行緒)的 8 核機器上,它將並行啟動 16 個作業。

這在https://doi.org/10.5281/zenodo.1146014的第 2 章中有介紹,我鼓勵您花 15 分鐘閱讀。你的命令行會因此而愛你。

引用自:https://unix.stackexchange.com/questions/679911