В настоящее время я пытаюсь ускорить моё моделирование. Я уже пробовал это с многопоточностью, и это работало. Теперь я хочу попробовать это с параллельными процессами, чтобы сравнить оба пути. Что я использую futures.ProcessPoolExecutor. Когда я запускаю свой скрипт, время симуляции печатается (очень мало), но моя программа не работает так, как должна. Обычно он должен генерировать несколько файлов, но они не генерируются. Кроме того, нет сообщения об ошибке. Я уже провел некоторые исследования в книгах и в Интернете, но не могу понять проблему.
Вот мой код:
def main(setting):
cfg_path = generate(settings[setting])
run_simulation(cfg_path)
if __name__ == '__main__':
settings = get_wrapper_input_json("Szenarioanalyse.json")
typ = "processes"
start = time.perf_counter()
if typ == "threads":
with futures.ThreadPoolExecutor(cpu_count()-1) as e:
e.map(main,settings)
elif typ == "processes":
with futures.ProcessPoolExecutor(cpu_count()-1) as e:
e.map(main,settings)
else:
for setting in settings:
main(setting)
print("Simulationtime: "+str(time.perf_counter()-1))