我想同时运行多次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函数的计算方法最快,但每次运行的参数不同?预先感谢任何意见和建议。