我有一个解析的XML文件(使用xml.sax库)中提取为未来学习机的数据相当大的量的代码。 我想解析部分以并行方式运行(我有一台服务器也做了一些网络服务的24个核心,所以我决定用其中的20)。 解析后,我想合并的结果。 下面的代码应该做的(以及正在做)正是我所料,但与平行的东西有问题。
def runParse(fname):
parser = make_parser()
handler = MyXMLHandler()
parser.setContentHandler(handler)
parser.parse(fname)
return handler.getResult()
def makeData(flist, tasks=20):
pool = Pool(processes=tasks)
tmp = pool.map(runParse, flist)
for result in tmp:
# and here the merging part
当这部分开始它运行在20个内核的一段时间,然后去只有一个,而它的合并部分(这当然会运行在只有一个核心)之前发生。
任何人都可以帮助解决这个问题或建议的方式来加快该计划?
谢谢!
ppiikkaaa