我即将编写一些计算密集型 Python 代码,这些代码几乎肯定会在numpy
的线性代数函数中花费大部分时间。
手头的问题令人尴尬地平行。长话短说,对我来说利用它的最简单方法是使用多个线程。主要的障碍几乎肯定是全局口译员锁(GIL)。
为了帮助设计这一点,有一个心智模型会很有用,在这个模型中,numpy
操作可以预期在其持续时间内释放 GIL。为此,我很感激任何经验法则、注意事项、指针等。
万一这很重要,我在 Linux 上使用 64 位 Python 2.7.1,带有numpy
1.5.1 和scipy
0.9.0rc2,使用 Intel MKL 10.3.1 构建。