物探论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1835|回复: 0

[工作站组建] 安装LAPACK 3.5.0\ATLAS\scipy等python库

[复制链接]
发表于 2014-4-27 10:23:25 | 显示全部楼层 |阅读模式
LAPACK版本:LAPACK 3.5.0
SCIPY版本 :3.11.17
python版本:2.7
下载:http://www.netlib.org/lapack/lapack-3.5.0.tgz

首先明确几个库的关系:
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:tar -zxvf lapack-3.5.0.tgz
cd lapack-3.5.0/
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文件:

Center.jpg
(5)最后:
sudo cp liblapack.a  librefblas.a libtmglib.a  /usr/lib
sudo cp liblapack.a librefblas.a libtmglib.a /usr/local/lib
(6)使用示例
test.f90源文件:
program test_sgesv
implicit none
real :: a(3,3),b(3)
integer :: v(3),iflag
external sgesv
a=reshape([2.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,4.0],[3,3])
b=[998.0,999.0,1000.0]
print *,'a=',a
print *,'b=',b
call sgesv(3,1,a,3,v,b,3,iflag)
print *,'solve=',b
end program test_sgesv
使用下面的语句编译,
gfortran test.f90 -llapack -lrefblas
然后就生成了a.out,可以执行了。
输出结果:
a=   2.000000      0.0000000E+00  0.0000000E+00  0.0000000E+00   3.000000   
  0.0000000E+00  0.0000000E+00  0.0000000E+00   4.000000   
b=   998.0000       999.0000       1000.000   
solve=   499.0000       333.0000       250.0000  

7) LAPACKE的安装
  从网站上下载lapacke的压缩包,就是Standard C language APIs for LAPACK对应的压缩包,解压缩,查看README文件。
同样地,需要修改make.inc文件,
[url=][/url]
CC 表示使用的C程序编译器,改成 gcc,
LINKER 表示编译时要使用的连接器,前面几行注释提到了,

  之前编译lapack.a 和blas.a用的什么fortran编译器,这里就用什么。那么改成 gfortran.

LAPACKE 表示要生成的库文件的名字,类似的,改成liblapacke
.a
LAPACKE的编译需要之前生成的lapack库文件,所以LIBS这一行需要设置好。
LIBS
= $(LAPACK_PATH)/liblapack.a $(LAPACK_PATH)/libblas.a
[url=][/url]

其中LAPACK_PATH就是liblapack.a所在的目录了。
查看以下Makefile,没什么需要修改的,可以直接make,或者是make lapacke, 不让它编译test的内容。然后就生成liblapacke.a了。
(8)使用示例
在lapacke的文件夹下面,有testing目录。我们近测试一个小的程序。新建一个目录,test_lapacke,把testing/include下面的test_utils.h文件拷出来,把utlis文件夹拷出来,把interface的一个.c文件拷出来,比如cbdsqr_1.c。还有lapacke文件夹下面的include里面的头文件。
那么按下面的命令编译,
gcc *.h cbdsqr_1.c utils/*.c -llapack -lblas -llapacke
编译成功,运行,输出PASSED,...。那么就表示程序运行正确了。
  这些只是测试,想要更方便的使用这些库,有两种方法,一是将那几个库文件放在/usr/lib下面,使用-l指定链接这些库,同时把lapacke/include下面的文件放到/usr/include下面,那么使用的时候,可以直接包含这些头文件。另一种方法就是把这些库文件,和那几个头文件放在自己的工程目录里。这两种方法差不多。

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

(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
没有报错则安装成功!


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|物探论坛 ( 鄂ICP备12002012号 微信号:iwutan )

GMT+8, 2024-3-28 21:26 , Processed in 0.076463 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表