我正在做一些神经感觉系统的建模,它对系统的不同阶段有不同的模型组件。每个阶段的计算都是并行完成的,然后传递到下一个阶段。
我遇到了multiprocessing.pool.MaybeEncodingError: Error sending result: '[<periphery_configuration.PeripheryOutput object at 0x10d00cf28>]'. Reason: 'error("'i' format requires -2147483648 <= number <= 2147483647",)'
,每this我认为这意味着我正在尝试传递一个numpy数组的列表,这些数组太大而multiprocessing
已用完了索引室。
我尝试使用joblib
解决此问题,如下所示。我究竟做错了什么?根据他们的文档,我应该自动记住磁盘;似乎没有发生。
这是一个简短的实现。对has_shareable_memory
的调用是一些丑陋的霰弹枪调试,我不完全理解它应该做什么。
当self.stimulus
包含少于约10,000个元素时,以下代码有效。它在self.stimulus
的{{1}}行上results = Parallel...
很长时间内出现上述错误。 run
是计算一个结果的方法。
self.solve_one_cochlea