多重处理似乎没有

2024-10-01 02:18:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我做了一个简单的多处理代码,但我认为它不工作。你知道吗

当我在笔记本电脑上尝试这个代码时,我通过ActivityMonitor应用程序检查了处理器,结果显示一些处理器工作正常。所以,有了这段代码,我在工作站上运行了它(核心是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的使用量会增加。我哪里做错了?你知道吗


Tags: 代码test应用程序fieldinputresultcpu处理器
1条回答
网友
1楼 · 发布于 2024-10-01 02:18:12

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

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,因此最多可以并行运行五个工作进程。输入iterable中没有足够的项来使用所有工作进程。你知道吗

作为旁注:test_list应该在if __name__ == '__main__':-块中定义。你知道吗

相关问题 更多 >