我想同時運行多次Python模擬,但在每次運行時參數略有不同。我正在嘗試使用multiprocessing
模塊來執行此操作。我開始這樣的代碼,在那裏我有定義爲函數的基本模擬,與參數參數:多處理同時運行的Python腳本
import multiprocessing
from math import *
def sim_seq(output_name,input_name,s_val...#more arguments):
#do work here
output.write(#data)
output.close()
return
我也創建與參數的文本文件用於模擬的每次運行,這是我讀和參數下面的循環中,在那裏我試圖用多用:
input_batch=('batch_file.txt')
if __name__ == '__main__':
jobs=[]
with open(input_batch) as f:
for line in f:
line=line.split(' ')
for i in line:
if i[0]=='o':
output_name=str(i[2:])
#read in more parameters from batch_file.txt
p = multiprocessing.Process(
target=sim_seq,
args=(output_name,input_name,s_val...#more arguments))
jobs.append(p)
for i in jobs:
i.start()
這基本上完成了我想要它做的,它在一次運行三種模擬,各有不同參數。但是,我正在使用的計算機有16個計算節點,每個節點有32個處理器。我想知道如何控制每個模擬運行的位置。例如,我可以告訴每個處理器運行單獨的模擬嗎?我是使用多處理器的新手,我想知道我該如何告訴處理器或哪個節點要做什麼。我可以擁有32個單獨的參數設置,並且可以在自己的處理器上運行每個32個仿真實例,但它們都在同一時間運行嗎?使用多處理,多次同時運行同一個python函數的計算方法最快,但每次運行的參數不同?預先感謝任何意見和建議。