2017-02-14 80 views
1

我正在使用128核心的linux服务器,但我不是唯一使用它的服务器,所以我想确保我的程序最多使用60个内核。我正在编写的程序是一系列模拟,其中每个模拟都是并行化的。可以选择这种单一仿真的内核数量,我通常使用12.因此,理论上,我可以同时运行这些仿真中的5个,这将导致(5x12)个内核使用60个总。我想从python开始模拟(因为这是所有预处理发生的地方),我的眼睛已经抓住了多处理库,特别是Pool类。Python多进程池进程数

现在我的问题是:我应该使用 池=池(进程= 5) 或 池=池(进程= 60)

的想法是:没有过程的说法表示工人的使用量(每个工人分配12个核心),还是可用的进程总量?

+0

_processes_是要使用的工作进程的数量。从[docs](https://docs.python.org/3.6/library/multiprocessing.html#multiprocessing.pool.Pool) –

+0

我相信它会从池中分配的进程总数系统可用的物理内核 - 因此您可能需要“Pool(processes = 60)”。 – martineau

回答

1

Pool中的参数'processes'意味着你想在这个程序中创建的总子进程。因此,如果要使用全部60个内核,则应该为60.