我们在内存中有100个大型Python对象(每个对象都是字典,Python标准值(例如整数),NumPy对象,Python类的混合),我们需要“按内容”复制它们中的大部分(“按价值“)。
请告知,我们如何能够并行或至少更快地完成这项工作?
我们已经考虑过一些方法(据我们了解,可能是错误的):
线程模块不起作用,因为使用Python本机函数进行复制,而GIL是一个瓶颈。
多处理模块和并行Python不起作用,因为它会腌制参数,在这种情况下酸洗并不比复制好(并且这种酸洗不能并行发生)。
PyPy可能至少可以提供小的改进(不是必需的),但似乎我们不能使用它,因为我们使用NumPy对象。
提前谢谢!
在这10天内一直在寻找可能的解决方案,但一直没有找到。 CPython GIL无处不在是难以逾越的障碍。似乎最简单的解决方案是切换到numpy对象(数组)而不是使用Python本机数组和字典,因为即使使用Python线程,也可以并行复制它们(至少一点)。