Python多处理队列是';别让所有的工人都忙

Python多处理队列是';别让所有的工人都忙,python,amazon-web-services,queue,multiprocessing,Python,Amazon Web Services,Queue,Multiprocessing,我有一个在单核上运行的管道,我试图在aws实例的32个核上并行运行数百次。我们希望,一旦一次跑步完成,下一次跑步就会开始。我已经根据我在网上找到的一个脚本编写了一个排队脚本,它似乎可以工作,但效率下降了,好像有些员工不接受新流程,但有些员工接受新流程 这是我脚本中的主要代码(不确定为什么我在这里剪切和粘贴时缩进没有显示-它们在我的脚本中是正确的,并且一切正常-所以我认为这不是问题): 这是一个来自亚马逊的CPU使用监视器的屏幕截图(我在第一个100完成后在中间开始了100个进程)-呃,我没有足够

我有一个在单核上运行的管道,我试图在aws实例的32个核上并行运行数百次。我们希望,一旦一次跑步完成,下一次跑步就会开始。我已经根据我在网上找到的一个脚本编写了一个排队脚本,它似乎可以工作,但效率下降了,好像有些员工不接受新流程,但有些员工接受新流程

这是我脚本中的主要代码(不确定为什么我在这里剪切和粘贴时缩进没有显示-它们在我的脚本中是正确的,并且一切正常-所以我认为这不是问题):

这是一个来自亚马逊的CPU使用监视器的屏幕截图(我在第一个100完成后在中间开始了100个进程)-呃,我没有足够的名声来发布我的图像-它在这里:

有人能理解为什么我的效率如此稳定地下降吗?显然,运行是在最初的32个内核之后开始的,但并非所有的内核都一直在使用

编辑添加-我昨天设置了200个作业运行-起初,所有32个内核都在运行。现在,尽管还有70个工作要做,但根据top的数据,只有18个正在运行。不确定是否有任何方法可以找出内核在做什么(如果有的话),或者是否有任何方法可以(甚至手动)让其余的运行。这是上衣的样子。大量的睡眠/僵尸工作。可能是这些问题吗

top - 13:33:01 up 6 days, 20:59,  4 users,  load average: 16.02, 16.05, 16.32
Tasks: 691 total,  17 running, 567 sleeping,  79 stopped,  28 zombie
%Cpu(s): 49.8 us,  0.2 sy,  0.0 ni, 50.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem:    245742 total,    69853 used,   175889 free,     1981 buffers
MiB Swap:        0 total,        0 used,        0 free,    35477 cached

   PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND                                                                                                                                                                                         
 69054 ubuntu    20   0  167m 157m 1272 R   100  0.1 210:06.19 raxmlHPC                                                                                                                                                                                        
  2281 ubuntu    20   0  127m 118m 1268 R   100  0.0 345:45.54 raxmlHPC                                                                                                                                                                                        
 55524 ubuntu    20   0 99520  89m 1288 R   100  0.0 242:37.41 raxmlHPC                                                                                                                                                                                        
 64499 ubuntu    20   0  164m 154m 1276 R   100  0.1 217:24.57 raxmlHPC                                                                                                                                                                                        
 72964 ubuntu    20   0  140m 130m 1280 R   100  0.1 202:28.98 raxmlHPC                                                                                                                                                                                        
 73077 ubuntu    20   0  173m 163m 1272 R   100  0.1 202:18.51 raxmlHPC                                                                                                                                                                                        
 78482 ubuntu    20   0 92484  80m 1276 R   100  0.0 195:14.09 raxmlHPC                                                                                                                                                                                        
 78497 ubuntu    20   0  104m  96m 1292 R   100  0.0 195:11.02 raxmlHPC                                                                                                                                                                                        
 79501 ubuntu    20   0  134m 124m 1272 R   100  0.1 191:59.39 raxmlHPC                                                                                                                                                                                        
 86534 ubuntu    20   0  135m 125m 1276 R   100  0.1  91:46.00 raxmlHPC                                                                                                                                                                                        
 88892 ubuntu    20   0  111m 102m 1276 R   100  0.0  84:53.55 raxmlHPC                                                                                                                                                                                        
 90763 ubuntu    20   0  102m  93m 1276 R   100  0.0  77:32.76 raxmlHPC                                                                                                                                                                                        
 94270 ubuntu    20   0 60544  50m 1280 R   100  0.0  42:05.16 raxmlHPC                                                                                                                                                                                        
 95210 ubuntu    20   0 73604  62m 1280 R   100  0.0  39:38.67 raxmlHPC                                                                                                                                                                                        
102045 ubuntu    20   0  112m  86m 1272 R   100  0.0   3:31.35 raxmlHPC                                                                                                                                                                                        
 98813 ubuntu    20   0 76844  51m 1268 R   100  0.0  21:21.22 raxmlHPC                                                                                                                                                                                        
102046 ubuntu    20   0 19808 2148 1120 R     1  0.0   0:00.11 top                                                                                                                                                                                             
  2280 ubuntu    20   0  4440  628  528 S     0  0.0   0:00.00 sh                                                                                                                                                                                              
  4343 ubuntu    20   0 25580 1116  880 S     0  0.0   0:00.31 screen                                                                                                                                                                                          
  4350 ubuntu    20   0  134m  16m 3748 S     0  0.0   0:00.13 python                                                                                                                                                                                          
  4359 ubuntu    20   0  143m  24m 1884 S     0  0.0   8:02.44 python                                                                                                                                                                                          
  4360 ubuntu    20   0  145m  26m 1884 S     0  0.0   3:05.85 python                                                                                                                                                                                          
  4363 ubuntu    20   0     0    0    0 Z     0  0.0   0:05.23 python                                                                                                                                                                                          
  4366 ubuntu    20   0     0    0    0 Z     0  0.0   0:03.89 python                                                                                                                                                                                          
  4370 ubuntu    20   0     0    0    0 Z     0  0.0   0:48.45 python                                                                                                                                                                                          
  4372 ubuntu    20   0  142m  23m 1860 S     0  0.0   4:40.39 python                                                                                                                                                                                          
  4376 ubuntu    20   0  143m  24m 1884 S     0  0.0   1:40.96 python                                                                                                                                                                                          
  4379 ubuntu    20   0     0    0    0 Z     0  0.0   0:05.15 python                                                                                                                                                                                          
  4383 ubuntu    20   0  141m  22m 1884 S     0  0.0   0:39.52 python                                                                                                                                                                                          
  4386 ubuntu    20   0     0    0    0 Z     0  0.0   0:11.20 python                                                                                                                                                                                          
  4388 ubuntu    20   0  146m  27m 1888 S     0  0.0   9:08.29 python                                                                                                                                                                                          
  4390 ubuntu    20   0  143m  24m 1888 S     0  0.0   3:56.54 python                                                                                                                                                                                          
  4392 ubuntu    20   0     0    0    0 Z     0  0.0   0:02.82 python                                                                                                                                                                                          
  4396 ubuntu    20   0     0    0    0 Z     0  0.0   0:56.10 python                                                                                                                                                                                          
  4401 ubuntu    20   0     0    0    0 Z     0  0.0   1:20.73 python                                                                                                                                                                                          
  4405 ubuntu    20   0     0    0    0 Z     0  0.0   1:59.12 python                                                                                                                                                                                          
  4408 ubuntu    20   0  141m  22m 1884 S     0  0.0   1:50.49 python                                                                                                                                                                                          
  4413 ubuntu    20   0  143m  24m 1880 S     0  0.0   2:12.69 python                                                                                                                                                                                          
  4420 ubuntu    20   0     0    0    0 Z     0  0.0   0:22.77 python                                                                                                                                                                                          
  4424 ubuntu    20   0  144m  25m 1884 S     0  0.0   3:21.91 python                                                                                                                                                                                          
  4428 ubuntu    20   0  145m  25m 1884 S     0  0.0   3:22.17 python                                                                                                                                                                                          
  4431 ubuntu    20   0     0    0    0 Z     0  0.0   2:14.93 python                                                                                                                                                                                          
  4434 ubuntu    20   0  141m  22m 1880 S     0  0.0   4:02.82 python                                                                                                                                                                                          
  4438 ubuntu    20   0  142m  23m 1880 S     0  0.0   2:46.69 python                                                                                                                                                                                          
  4443 ubuntu    20   0     0    0    0 Z     0  0.0   0:05.89 python                                                                                                                                                                                          
  4446 ubuntu    20   0  143m  23m 1884 S     0  0.0   2:20.15 python                                                                                                                                                                                          
  4450 ubuntu    20   0  144m  25m 1884 S     0  0.0   2:50.68 python                                                                                                                                                                                          
  4453 ubuntu    20   0  143m  24m 1888 S     0  0.0   1:12.57 python                                                                                                                                                                                          
  4457 ubuntu    20   0     0    0    0 Z     0  0.0   0:22.13 python                                                                                                                                                                                          
  4461 ubuntu    20   0     0    0    0 Z     0  0.0   0:51.41 python                                                                                                                                                                                          
  5688 ubuntu    20   0  4440  624  528 T     0  0.0   0:00.00 sh                                                                                                                                                                                              
  5689 ubuntu    20   0  148m 138m 1276 T     0  0.1 240:22.68 raxmlHPC                                                                                                                                                                                        
  8337 ubuntu    20   0  4440  628  528 T     0  0.0   0:00.00 sh                                                                                                                                                                                              
  8338 ubuntu    20   0  153m 144m 1280 T     0  0.1 236:11.93 raxmlHPC                                                                                                                                                                                        
 10025 ubuntu    20   0  4440  624  524 T     0  0.0   0:00.00 sh                                                                                                                                                                                              
 10026 ubuntu    20   0  137m 127m 1276 T     0  0.1 234:20.39 raxmlHPC                                                                                                                                                                                        
 10043 ubuntu    20   0  4440  628  528 T     0  0.0   0:00.00 sh                                                                                                                                                                                              
 10044 ubuntu    20   0  127m 117m 1276 T     0  0.0 233:17.22 raxmlHPC                                                                                                                                                                                        
 12386 ubuntu    20   0 25580 1116  880 S     0  0.0   0:00.45 screen                                                                                                                                                                                          
 12433 ubuntu    20   0  4440  624  528 T     0  0.0   0:00.00 sh                                                                                                                                                                                              
 12434 ubuntu    20   0 73660  64m 1292 T     0  0.0 160:00.80 raxmlHPC                                                                                                                                                                                        
 14688 ubuntu    20   0  4440  624  528 T     0  0.0   0:00.00 sh                                                                                                                                                                                              
 14689 ubuntu    20   0 88780  77m 1276 T     0  0.0 143:17.54 raxmlHPC                                                                                                                                                                                        
 36470 ubuntu    20   0 25956 1744  968 S     0  0.0   0:59.78 screen                                                                                                                                                                                          
 36471 ubuntu    20   0 20904 3532 1860 S     0  0.0   0:00.43 bash                                                                                                                                                                                            
 45234 ubuntu    20   0  4440  628  528 T     0  0.0   0:00.00 sh                                                                                                                                                                                              
 45235 ubuntu    20   0  116m  91m 1272 T     0  0.0  31:54.50 raxmlHPC                                                                                                                                                                                        
 55523 ubuntu    20   0  4440  628  528 S     0  0.0   0:00.00 sh                                                                                                                                                                                              
 64498 ubuntu    20   0  4440  628  528 S     0  0.0   0:00.00 sh                                                                                                                                                                                              
 69053 ubuntu    20   0  4440  628  528 S     0  0.0   0:00.00 sh                                                                                                                                                                                              
 71281 ubuntu    20   0 95004 1876  892 S     0  0.0   0:05.47 sshd                                                                                                                                                                                            
 71310 ubuntu    20   0 21356 3984 1860 S     0  0.0   0:00.36 bash                                                                                                                                                                                            
 72963 ubuntu    20   0  4440  628  528 S     0  0.0   0:00.00 sh                                                                                                                                                                                              
 73076 ubuntu    20   0  4440  624  524 S     0  0.0   0:00.00 sh                                                                                                                                                                                              
 78481 ubuntu    20   0  4440  628  528 S     0  0.0   0:00.00 sh                                                                                                                                                                                              
 78496 ubuntu    20   0  4440  624  524 S     0  0.0   0:00.00 sh                                                                                                                                                                                              
 79500 ubuntu    20   0  4440  624  524 S     0  0.0   0:00.00 sh                                                                                                                                                                                              
 81682 ubuntu    20   0  4440  624  528 T     0  0.0   0:00.00 sh                                                                                                                                                                                              
 81685 ubuntu    20   0 94980  83m 1276 T     0  0.0  48:33.73 raxmlHPC                                                                                                                                                                                        
 83916 ubuntu    20   0  4440  628  528 T     0  0.0   0:00.00 sh                                                                                                                                                                                              
 83917 ubuntu    20   0 65964  47m 1272 T     0  0.0  12:19.77 raxmlHPC                                                                                                                                                                                        
 84034 ubuntu    20   0 25844 1612  968 S     0  0.0   0:10.79 screen                                                                                                                                                                                          
 84035 ubuntu    20   0 20896 3524 1860 S     0  0.0   0:00.15 bash                                                                                                                                                                                            
 84089 ubuntu    20   0  134m  16m 3748 T     0  0.0   0:00.14 python                                                                                                                                                                                          
 84096 ubuntu    20   0  146m  27m 1860 T     0  0.0   3:07.70 python                                                                                                                                                                                          
 84097 ubuntu    20   0     0    0    0 Z     0  0.0   5:13.17 python                                                                                                                                                                                           

下面是一个简单的示例,其中要完成的工作在函数“hmmsearch”中定义。要处理的对象在“容器”中定义。这将使所有32名员工保持忙碌:

from multiprocessing import Pool
from tqdm import tqdm

def hmmsearch(bin): return bin.pfams.run(cpus=1)
bins = bt.merged.results.binner.results.bins

pool = Pool(processes=32)
iterator = pool.imap(hmmsearch, bins, chunksize=1)
i = 0

for result in tqdm(iterator, total=len(bins)):
    print "Done bin %s." % bins[i]
    i += 1

如果你编辑这个,张贴一些你做什么的代码,以及你怎么做,以及它出了什么问题。我在写作中偶然地发现了问题——我的问题现在已经完成了!“目标=工人”,但你没有定义“工人”?你不使用你在“X范围内的w(工人)”中定义的w吗?你能修复压痕吗?你从main开始,但是你不知道
worker
函数是什么样子的?好的-我想我只是通过发布带有队列的部分来更清楚-我添加了worker。我不知道为什么剪切和粘贴时缩进不起作用-我的定义行没有一行在这里,但它们在脚本中很好。什么是
bt
?我是从另一个问题上来的,我正在尝试对进度条进行多行更新。它没有什么特别的,只是一个定制的自制对象。变量
bins
只需要是一个列表或元组,其余的就是一个例子。
from multiprocessing import Pool
from tqdm import tqdm

def hmmsearch(bin): return bin.pfams.run(cpus=1)
bins = bt.merged.results.binner.results.bins

pool = Pool(processes=32)
iterator = pool.imap(hmmsearch, bins, chunksize=1)
i = 0

for result in tqdm(iterator, total=len(bins)):
    print "Done bin %s." % bins[i]
    i += 1