我想创建许多并行进程来利用32核心机器,但是当我看着顶部屏幕时,它只显示5个Python进程。这是我的代码:Python多处理。与许多进程池
max_processes = min(len(corpus_paths), cpu_count()*2)
__log.debug("Max processes being used: " + str(max_processes))
pool = Pool(max_processes)
for path in corpus_paths:
pool.apply_async(...)
pool.close()
pool.join()
这是本机的配置:
[[email protected] ~]$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 32
On-line CPU(s) list: 0-31
Thread(s) per core: 2
Core(s) per socket: 8
CPU socket(s): 2
NUMA node(s): 4
Vendor ID: AuthenticAMD
CPU family: 21
Model: 1
Stepping: 2
CPU MHz: 2099.877
BogoMIPS: 4199.44
Virtualization: AMD-V
L1d cache: 16K
L1i cache: 64K
L2 cache: 2048K
L3 cache: 6144K
NUMA node0 CPU(s): 0,2,4,6,8,10,12,14
NUMA node1 CPU(s): 16,18,20,22,24,26,28,30
NUMA node2 CPU(s): 1,3,5,7,9,11,13,15
NUMA node3 CPU(s): 17,19,21,23,25,27,29,31
谢谢!
它现在有效。我的代码一定有问题,但我不能回滚看看它是什么。关闭。
让我猜测:他们都是从同一张磁盘读取的? – 2013-03-06 15:47:11
uhmmm ...是... – 2013-03-06 16:06:40
请问从同一张磁盘读取的含义是什么? – 2013-03-07 10:44:35