参考资料:
atlas官方主页:http://math-atlas.sourceforge.net/
http://210.75.240.148/blog-449511-577597.html
http://blog.csdn.net/zxia1/article/details/8164746
http://blog.sina.com.cn/s/blog_6cb8e53d0101keak.html
LAPACK版本:LAPACK 3.5.0
SCIPY版本 :3.11.17
python版本:2.7
首先明确几个库的关系:
ATLAS是python下的一个线性代数库,是基于线性代数库lapack的;
NumPy提供了一个在python中做科学计算的基础库,它重在数值计算,甚至可以说是用于多维数组处理的库;
SciPy是基于numpy,提供了一个在python中做科学计算的工具集,也就是说它是更上一个层次的库;
许多人说NumPy依赖于ATLAS,但是实测我自己没有安装ATLAS成功安装NumPy,不过直接安装scipy却报缺少BLAS库,因此选择了BLAS的优化ATLAS进行安装。
预处理:
根据atlas的安装文档,安装前,要先要禁掉CPU Throtting。由于我使用的是虚拟机,只有一个核,故而不需要此步,但仍然列出: 在Ubuntu系统上要首先安装cpufrequtils和cpufreqd这两个包, 也许还要安装powernowd包, 然后执行sudo /usr/bin/cpufreq-selector –g
1. 安装LAPACK
网上的教程很多直接用LAPACK的压缩包作为ATLAS的参数,我 真正安装scipy的时候也是用的压缩包,不过这里仍然给出完整安装lapack的教程。(网上现有教程版本较老,实际操作需要有所改动,安装的时候我快纠结得要死)
(1)解压LAPACK,将lapack源目录下的make.inc.example 改名make.inc:
mv make.inc.example make.inc
(2)编辑一下make.inc,将编译器指定为你的编译器ifort或者gfortran (我没做修改)
(3)修改一下那个makefile,其实里面有个让你选的,
#lib : blaslib ,lapacklib , tmglib ...
lib : lapacklib ,tmglib ,..
改成
lib :blaslib ,lapacklib,tmglib ..
# lib :lapacklib ,tmglib ,..
(4) make
最后生成3个.a文件:

2. 安装ATLAS
ATLAS 完整安装步骤主要分5步,仅configure和build是必需的。下面是官网介绍:
- configure: Tell the ATLAS build harness where your SRCdir and BLDdir directories are, and allow ATLAS to probe the platform to create ATLAS's Make.inc and BLDdir directory tree.
- build: Tune ATLAS for your platform, and build the libraries.
- check: Run sanity tests to ensure your libraries are producing correct answers.
- time: Run basic timing on various ATLAS kernels in order to make sure the tuning done in the build step has resulted in efficient implementations.
- install: Copy ATLAS's libraries from the BLDdir to some standard location.
(1)在安装前需要确定2个文件夹:
SRCdir:the path to your ATLAS source directory (eg, /home/whaley/ATLAS3.8.0).
BLDdir: the path to your ATLAS build directory (eg, /home/whaley/ATLAS3.8.0/Linux_P4E64SSE3).
2个文件目录不允许相同,但BLDdir可以不在SRCdir子目录下。
(2)从官网下载ATLAS库,解压到ATLASSRCdir文件夹,然后进入该文件夹,执行:
mkdir Linux_C2D64SSE3 # create BLDdir
cd Linux_C2D64SSE3 # enter BLDdir
../configure -b 64 -D c -DPentiumCPS=2800 -Fa alg -fPIC --with-netlib-lapack-tarfile=/home/haiyu/Programs_Install/lapack-3.5.0.tgz --prefix=/usr/local/atlas
粗体参数需要根据个人系统修改:
-b 指定编译出库的类型(32位库还是64位库)
-D c -DPentiumCPS 是指定你的CPU的时钟频率,可以通过 grep MHz /proc/cpuinfo 得到
-Fa alg -fPIC 得到与位置无关的代码,生成动态的共享库
--prefix 为安装路径
--with-netlib-lapack-tarfile 则是lapack压缩包路径
成功configure的结果应该如下:
(3)编译:make build
这个过程相当漫长,耐心等待!!
(4)可选步骤:check编译结果
make check
make ptcheck (对于多核服务器)
make time
如果check过程中没有报错,则可以放心进行以后的步骤;如果出现报错,也可以尝试进行后续步骤,是否成功就要靠人品了。反正我当时每步貌似都报错了o(╯□╰)o 不过目前看来没有影响。
3.安装scipy等python库
对于python 2.7 可以直接执行:
sudo apt-get install python-numpy
sudo apt-get install python-scipy
sudo apt-get install python-matplotlib
4.验证scipy是否正确安装
打开Terminal,输入:
python
>>>import scipy.io as io
没有报错则安装成功!