我想創建許多並行進程來利用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