首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python多处理速度极慢

Python多处理速度极慢
EN

Stack Overflow用户
提问于 2021-05-12 07:02:37
回答 1查看 97关注 0票数 1

我尝试在一个循环中多次运行pyomo/python中的优化模型,其中只有一个可更改的参数,即c_param,并且c_param的值为1到170。我也在尝试使用并行计算来实现这一点,使用带有6个处理器的多处理模块。然而,我认为我在设置它的方式上有一些错误,因为多处理方法比没有多处理方法要慢。所以我有:

代码语言:javascript
复制
    import multiprocessing as mp

    # Global parameters defined here.
    S = list(range(170))
    def my_model(c_param):
        # My pyomo model here
        # Print model results to csv

    if __name__ == "__main__":
        c_param= [i + 1 for i in S]

        pool = mp.Pool(6)
        pool.map(my_model, S)
        pool.close()
        pool.join()

我希望有170个csv文件打印出来。我可以用一个普通的循环很好地实现这一点,但这样做需要大约40个小时。我希望使用6个处理器将这一过程加速到6-7小时,但不知何故这需要更长的时间。我是不是做错了什么会减慢进程?提前感谢您的帮助!

EN

回答 1

Stack Overflow用户

发布于 2021-05-12 09:18:28

如果模型函数包含许多和/或深度嵌套的对象,则可能需要更长的时间,因为在将对象发送到其他进程之前,需要对对象进行pickled/序列化。然而,如果不知道模型函数中的内容,就很难判断。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67495365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档