天天看點

菜鳥 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 

 沒有報錯則安裝成功!

繼續閱讀