我有一个60GB的SciPy阵列(矩阵),必须在5个以上的multiprocessing Process对象之间共享。我看过numpy-sharedmem,并在SciPy列表上阅读了此讨论。似乎有两种方法- numpy-sharedmem和使用a multiprocessing.RawArray()并将NumPy dtypes 映射到ctypes。现在,这numpy-sharedmem似乎是要走的路,但是我还没有看到一个很好的参考示例。我不需要任何种类的锁,因为阵列(实际上是一个矩阵)将是只读的。现在,由于它的大小,我想避免复制。这听起来像是正确的方法是创建唯一的数组作为副本sharedmem数组,然后将它传递给Process对象?几个特定的问题:实际将sharedmem句柄传递给子对象的最佳方法是Process()什么?我是否需要一个队列来传递一个数组?管道会更好吗?我可以仅将它作为参数传递给Process()子类的init(我假设它是腌制的)吗?在上面链接的讨论中,提到numpy-sharedmem不是64位安全的吗?我肯定使用了一些不是32位可寻址的结构。该RawArray()方法是否需要权衡?慢一点,孩子吗?numpy-sharedmem方法是否需要任何ctype到dtype的映射?有没有人举一些开源代码的例子呢?我是一个非常动手的知识,如果没有任何好的榜样,很难使它成功。如果有任何额外的信息,我可以提供帮助澄清此为他人,请评论,我会补充。谢谢!这需要在Ubuntu Linux和运行可能的Mac OS,但便携性是不是一个巨大的关注。
添加回答
举报
0/150
提交
取消