gpt4 book ai didi

python - 多重处理似乎不起作用

转载 作者:行者123 更新时间:2023-12-01 07:42:03 25 4
gpt4 key购买 nike

我编写了一个简单的多处理代码,但我认为它不起作用。

当我在笔记本电脑上尝试此代码时,我通过事件监视器应用程序检查了处理器,它显示某些处理器可以工作。因此,使用这段代码,我在工作站上运行它(核心高达 28,使用了 24),并通过任务管理器再次检查它。但是,CPU 使用率并没有增加,只是处理器增加了。

# Multiprocessing

def multi(input_field):
result = subvolume.label(input_field)
return result

test_list = [resampled_sub_1, resampled_sub_2, resampled_sub_3,
resampled_sub_4, resampled_sub_5]

if __name__ == '__main__':
pool = multiprocessing.Pool(processes=24)
results = pool.map(multi, test_list)
pool.close()
pool.join()

当多处理正确完成时,我认为 CPU 使用率会增加。我哪里做错了?

最佳答案

您的池中有 24 个进程,但您的可迭代 test_list 中只有 5 个项目。当您从我的答案 here 中选择 calc_chunksize_info() 时,您可以计算生成和分发的 block :

calc_chunksize_info(n_workers=24, len_iterable=5)
# Out: Chunkinfo(n_workers=24, len_iterable=5, n_chunks=5, chunksize=1, last_chunk=1)

Chunksize 将为1,因此最多可以并行运行五个工作进程。您的输入迭代中根本没有足够的项目来使用所有工作进程。

作为旁注:test_list 应在 if __name__ == '__main__':- block 内定义。

关于python - 多重处理似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56651979/

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