我正在尝试使用Joblib的Parallel
来并行化例程,但它不起作用,因为其中一个底层函数使用Cython的内存视图,导致buffer source array is read-only
(相同)问题已经讨论here)。
我想理解它为什么会发生(我对Joblib的低级机制的了解有限),以及我可以做些什么来解决它。
我知道使用Numpy缓冲区可以避免这个问题(如here所述),但这不是一个真正的解决方案。有问题的函数在并行prange
循环中切片数组:使用Numpy缓冲区意味着我不能在没有GIL的情况下对数组进行切片,因此我无法使用prange
并行化循环。