numpy不是多线程

时间:2016-03-23 16:23:09

标签: python multithreading numpy

我的设置:

  • Python 3.5,编译并安装到我的主目录中的某个位置;
  • OpenBLAS,已安装在/usr/local(我也编译了自己的OpenBLAS,但问题仍然存在)
  • Numpy,从github检出,编辑site.cfg找到OpenBLAS,并安装在virtualenv中。
  • 我没有在此virtualenv或此解释器上安装任何其他内容。

问题:Numpy很慢并且总是使用单个线程。 OMP_NUM_THREADS不受尊重。无论是否设置OMP_NUM_THREADS,我的测试用例(矩阵乘法)需要16秒。

还有一个Python 2.7解释器,其numpy链接到相同的OpenBLAS安装。多线程适用于该解释器,如果未设置OMP_NUM_THREADS则相同的测试用例需要2.3秒,如果OMP_NUM_THREADS=8则为2.5秒,如果OMP_NUM_THREADS=1则为13秒。

同样奇怪的是,我必须在LD_LIBRARY_PATH环境变量中指定OpenBLAS库的位置才能使用我的设置,即使我在编译numpy之前在site.cfg中提供了路径。如果我在Python 2中使用numpy,这不是必需的。我错过了哪些步骤?

0 个答案:

没有答案