我正在尝试编写一个程序,以并行方式执行计算,以便每个计算的结果可以按特定顺序写入文件。我的问题是规模;我想做我在下面示例程序中概述的内容 - 将大输出保存为字典的值,该字典在其键中存储排序系统。但我的程序一直崩溃,因为它无法存储/传递如此多的字节。
有没有固定的方法来解决这类问题?我对处理多进程和大型数据都很陌生。
谢谢你。
有没有固定的方法来解决这类问题?我对处理多进程和大型数据都很陌生。
from multiprocessing import Process, Manager
def eachProcess(i, d):
LARGE_BINARY_OBJECT = #perform some computation resulting in millions of bytes
d[i] = LARGE_BINARY_OBJECT
def main():
manager = Manager()
d = manager.dict()
maxProcesses = 10
for i in range(maxProcesses):
process = Process(target=eachProcess, args=(i,d))
process.start()
counter = 0
while counter < maxProcesses:
file1 = open("test.txt", "wb")
if counter in d:
file1.write(d[counter])
counter += 1
if __name__ == '__main__':
main()
谢谢你。