Если я вас правильно понял, вы хотите запустить метод simulate () с разными значениями T и сравнить результаты.Чтобы реализовать это с помощью многопроцессорной обработки, вам просто нужно настроить пул с нужным количеством процессов и использовать map
для запуска вашей функции со списком значений T
.Вам также нужно использовать partial
, чтобы превратить вашу функцию из функции, которая принимает семь аргументов, в функцию, которая требует только одного, с постоянными значениями для остальных шести.Это важно, потому что map
нужно знать, какой аргумент является изменяемым.Вот (непроверенный) пример:
import multiprocessing as mp
from functools import partial
# Create pool with desired number of processes
pool = mp.Pool( processes=3 )
# Make a partial function with preset values for params
partial_function = partial( simulate, runs=runs,
time=time, param1=param1, param2=param2,
param3=param3, param4=param4 )
# Dummy values for what T should be
options_for_T = [100, 200, 300, 400, 500, 600]
# Results will be a list of the output of simulate() for each T
results = pool.map( partial_function, options_for_T )
РЕДАКТИРОВАТЬ: я должен также указать, что использование tqdm
здесь может быть контрпродуктивным, так как все ваши процессы будут общаться друг с другом