我编写了一个程序,可以将大约2600个文本文档解析为Python对象。
这些对象有很多对其他对象的引用,它们总体上描述了文档的结构。在
用pickle序列化这些对象没有问题,而且速度非常快。在
在将这些文档解析成Python对象之后,我必须对它们进行一些繁重的计算,我想将其并行化。
我当前的解决方案是将其中一个文档对象传递给一个工人函数,然后这个工作函数正在进行那些繁重的计算。在
这些计算的结果被写入document对象中的属性对象中。
worker函数然后返回那些更改的对象(只返回那些属性对象,而不是原始文档对象)。在
所有这些操作都使用以下简化代码:def worker(document_object):
# Doing calculations on information of document_object and altering objects which are attributes of document_object
return document_object.attribute_objects
def get_results(attribute_objects):
# Save results into memory of main process
# Parsing documents
document_objects = parse_documents_into_python_objects()
# Dividing objects into smaller pieces (8 and smaller worked for me)
for chunk in chunker(document_objects, 8):
pool = multiprocessing.