【发布时间】:2017-07-03 03:55:46
【问题描述】:
我正在使用具有 128 个内核的 linux 服务器,但我不是唯一使用它的服务器,因此我想确保我的程序最多使用 60 个内核。我正在编写的程序是一系列模拟,其中每个模拟本身都是并行化的。这样一个模拟的核数是可以选择的,我一般用12个。
所以理论上,我可以同时运行 5 个模拟,这将导致总共使用 (5x12) 60 个内核。我想从 python 开始模拟(因为这是所有预处理发生的地方),我的眼睛已经注意到了多处理库,尤其是 Pool 类。
现在我的问题是:我应该使用 池 = 池(进程 = 5) 要么 池=池(进程=60)
想法是:processes 参数是表示使用的工作人员数量(每个工作人员分配了 12 个核心),还是可用的进程总数?
【问题讨论】:
-
processes 是要使用的工作进程数。来自docs
-
我相信池中可用的进程总数将从系统可用的物理内核数中分配——所以你可能想要
Pool(processes=60)。
标签: python process pool multiprocess