天天看点

菜鸟 ubuntu下安装scipy全过程 (主要是安装atlas)

参考资料:

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文件:

菜鸟 ubuntu下安装scipy全过程 (主要是安装atlas)

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的结果应该如下:

菜鸟 ubuntu下安装scipy全过程 (主要是安装atlas)

(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 

 没有报错则安装成功!

继续阅读