回 帖 发 新 帖 刷新版面

主题:Linux下Lapack如何安装呀?

我的系统是fc6,安装了ifort9,fc6自带的gcc,

安装Lapack怎么配置呀?

我自己倒是安装了,但是我安装的另外一个软件却找不到它的库

所以想看看大家怎么安装Lapack的,是不是我安装的有问题。

回复列表 (共29个回复)

11 楼

刚刚吃过饭了,我今天没有上班。不过一会儿我就去单位,去试一试。我想一定会成功的。

12 楼


我去单位试验了,发现了一些问题,请您帮忙解答一下:


FORTRAN  = g77 
OPTS     = -funroll-all-loops -O3
DRVOPTS  = $(OPTS)
NOOPT    =
LOADER   = g77
LOADOPTS =
改为:
FORTRAN  = ifort
[color=FF0000]OPTS     = -funroll-all-loops -O3[/color]
DRVOPTS  = $(OPTS)
NOOPT    =
LOADER   = ifort
LOADOPTS =
红色部分表示没有修改

make之后有许多的warning,到Test complete之后便不动了

而用
FORTRAN  = g77 
OPTS     = -funroll-all-loops -O3
DRVOPTS  = $(OPTS)
NOOPT    =
LOADER   = g77
LOADOPTS =
则可以完成,不过时间很长我没有进行完

所以我猜想OPTS     = -funroll-all-loops -O3 也应该随着编译器修改一下

不知道我说的对么?

您是怎么做的呢??


13 楼

我忘记了,那是很久以前的事情了...,好像需要把-funroll-all-loops去掉。
如果你对ifort熟悉,自己可以定制编译器选项的。-O3优化还是留着为妙

14 楼

那就麻烦您再试一试了,我对ifort的参数一点也不明白。谢谢您了!

15 楼

在hhsy的帖子中提到了用OPTS     = -optimize:5,是否可以呢?


下载后解压,比较解压路径为G:\lapack。需要修改里面的make.inc文件:
1、修改里面的 HOME = G:\lapack   你解压的文件夹
2、如果用CVF编译的话FORTRAN  = df这一个不需要改,如果用IVF编译的话,改为FORTRAN  = ifort
3、修改优化级别OPTS     = -optimize:5,默认为2

16 楼

[quote]在hhsy的帖子中提到了用OPTS     = -optimize:5,是否可以呢?


下载后解压,比较解压路径为G:\lapack。需要修改里面的make.inc文件:
1、修改里面的 HOME = G:\lapack   你解压的文件夹
2、如果用CVF编译的话FORTRAN  = df这一个不需要改,如果用IVF编译的话,改为FORTRAN  = ifort
3、修改优化级别OPTS     = -optimize:5,默认为2
[/quote]


OPTS     = -optimize:5是在CVF的优化参数

LINUX下如果要用Intel FORTRAN的话,可以保留-O3,其它的那些都要删除。如果你的CPU是双核的,可以用如下参数
OPTS     =-O3 -xP -axP
如果是P4非双核的,不能用上面的参数,可以用
OPTS     =-O3 -xN -axN

17 楼


我使用的程序需要BLAS。
我将LAPACK编译后产生的三个.a文件考到上面说的目录下。
可是当运行我的程序时却还是找不到BLAS。
请高手指点指点!!

18 楼

linux下,ifort,gfortran,g95都是通过联合使用-L和-l来调用库。
要调用一个库,你必须知道库所在的目录,库文件的名称,和要调用的函数。

库所在的目录 用 -L 来指定;一些路径为通用路径,可以省略指定。
库文件的名称 用 -l 来指定,注意 -llapack 指使用 liblapack.a这个库。即去掉.a后缀,去掉前面lib三个字母后再用-l调用;lapack编译后产生的库都不带lib,要改名加上。
至于调用函数 当然是在源程序里call

19 楼


还有一个问题要请教!
我以前用的linux下自带有BLAS
它的/usr/lib下有文件
liblbas.a
libblas.so
libblas.so.3
libblas.so.3.0
libblas.so.3.0.3
可是我编译好的LAPACK中只有blas_LINUX.a
改后就是libblas.a考过去后
还少四个文件!
LAPACK同样也有五个文件,而我的只有liblapack.a!
怎样才能得到他们!?
谢谢赐教!

20 楼

libblas.so
libblas.so.3
libblas.so.3.0
libblas.so.3.0.3
是同一个东西,前三个只是最后那个文件的链接。

libblas.a是静态库,而libblas.so是动态库。-lblas对两个都有效。
gfortran或者ifort编译器都有选项让你控制连接到哪个库。如果同时有两种库又不加任何编译选项,那么连接到动态库;如果只有一种库且不加编译选项,当然就是它了。

至于lapack源代码编译后只有静态库,那是因为Makefile里没有生成动态库的指令。但是由于编译动态、静态库的过程中各文件依赖关系不变,所以基本上只要改变Makefile中编译器选项,以及最后一步制造库的命令,就能制造动态库。并不难。

动态库优点是节省磁盘空间以及控制版本一致性,操作系统大量使用,但这些对我们用处不大。如果使用动态库,你的程序传到另一台机器可能就会因没有那个库而不能运行。

我来回复

您尚未登录,请登录后再回复。点此登录或注册