gpt4 book ai didi

python - 多处理池生成初始化非常慢,16 个进程需要 100 秒

转载 作者:行者123 更新时间:2023-12-04 17:21:55 26 4
gpt4 key购买 nike

在我的程序中,我需要生成 16 个多处理池,以便在我的 3950x 上使用 16 个内核。我有一个初始化程序,它在 spawn 子进程中初始化三个全局变量(总共大约 300kb)。
在使用初始化程序之前,每个进程大约需要 1 秒才能产生。现在 16 个过程总共需要大约 100 秒!知道为什么现在这么慢吗?示例代码如下:

def set_mp_global_vars(bc, bm, bf_n):
"""mp initialiser which sets global vars to reduce mp overhead"""
global base_comps, base_matches, bf_names
base_comps = bc
base_matches = bm
bf_names = bf_n

int_pool_workers = mp.cpu_count()
pool = mp.Pool(processes=int_pool_workers, initializer=set_mp_global_vars,
initargs=(base_comps, base_matches, bf_names))

最佳答案

在 Windows 10 上使用 Python 3.9.2 并在 Threadripper CPU 上生成 30 个进程需要 23 秒,并启用 Pycharm 调试。如果我在没有调试的情况下运行,则需要 0.21 秒。
pydev 调试器将 mp.Pool 减慢了 100 倍。
你也可以看看:python-3-6-multiprocessing-pool-very-slow-to-start-using-windows

关于python - 多处理池生成初始化非常慢,16 个进程需要 100 秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65648881/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com