簡體   English   中英

在具有不同變量的多個核心中運行類似程序

[英]Running similar program in multiple cores with different variable

我有一個程序,我想創建N個實例,其中唯一不同的是一些超參數$ \\ beta $。

在我看來,我知道我可以使用bash腳本執行此操作,我將程序調用N次,每次調用$ \\ beta $的值,並將每個值發送到后台,以便下一個可以運行:

#!/bin/bash

nohup python3 test.py 1 >> res.txt &
nohup python3 test.py 2 >> res.txt &
nohup python3 test.py 3 >> res.txt &
nohup python3 test.py 4 >> res.txt &

也許我也可以在python中以更干凈的方式直接執行此操作。 我的問題是,根據您的經驗,實現這一目標的最簡潔方法是什么? 隨意詢問我可能錯過的任何細節。

為了並行運行多個東西,我想到的是GNU Parallel

所以對於你的例子,干運行給出了:

parallel --dry-run 'nohup python prog.py {} &' ::: {1..4}

樣本輸出

nohup python prog.py 3 &
nohup python prog.py 2 &
nohup python prog.py 1 &
nohup python prog.py 4 &

一般情況下,您不希望多個並行進程寫入同一個文件 - 這會弄得一團糟,所以我會在參數后面命名輸出文件:

parallel --dry-run 'nohup python prog.py {}  > res{}.txt &' ::: {1..4}

您正在尋找子進程模塊。

subprocess.run([process_name, arg1, arg2, argn])

一個例子。

import subprocess

subprocess.run(["ls", "-l"])

還要檢查如何調用子進程並獲取輸出

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM