用BLAS+LAPACK或OpenBLAS或MKL编译安装SciPy

昨天有一个工单,涉及到编译安装SciPy。如果在个人电脑上,对性能没有太大要求的,可以直接在Linux下用包管理器安装好或者在Windows下安装已经打包好的SciPy。然而在对性能有需求的地方,还是需要进行编译安装的。另外,国内的超级计算机基本上都是在一个内网里,不接入外网,要登陆使用必须挂VPN,所以自然是不能用包管理器的了。NumPy和SciPy一般是一起装的,matplotlib依赖这两个。NumPy的线性代数部分依赖现有的高性能线性代数库,比如Intel MKL、AMD ACML、GotoBLAS2、LAPACK、ATLAS等。网上的文章很多都说要用ATLAS + LAPACK来装,但我没用这个方法。最大的原因是,ATLAS在安装的时候会检测CPU是否有睿频,有的话要频率开到最大才能继续编译安装。但是一般用户没有sudo权限,所以只能另寻他法。找了一圈试了一下以后发现可以只装netlib的BLAS和LAPACK来安装SciPy,或者用OpenBLAS来装(其实也要用到netlib的LAPACK),或者用MKL来装。
装这个包这两天折腾了我好久。好在问题总算解决了,我整理了一下我的安装步骤,以供参考。
继续阅读