sudo apt-get install cmake
sudo apt-get install doxygen
make config
make install
使用方法
主目录 make
cd BUILD_FASP/tutorial; ./mv_ex.sh
tutorial ./
make
TO DO: 安装高效 BLAS 库,例如 MKL
创建make.inc
修改BLASLIB = ../../../BLAS-3.5.0/blas_LINUX.a
make
lapack 链接的 BLAS 库是经过优化的
Makefile中 lib:
那一行下面有个注释,如果换成注释部分的内容则会自动编译lapack自带的BLAS。
我在服务器CentOS下安装时,编译到测试部分,./xeigtstz
报错,段错误(吐核), 不知道为啥,修改TEST文件夹下的Makefile,去掉所有的complex类型测试则编译通过。
包含很多软件包以及matlab
接口,主要是含有UMFPACK
cd SuiteSparse_config/
修改SuiteSparse_config.mk
CFLAGS = -g
注释 BLAS = -lopenblas
BLAS = ../../../BLAS-3.5.0/blas_LINUX.a -lgfortran
LAPACK = ../../../lapack-3.5.0/liblapack.a
cd ../
make
// make install
// # For "make install"
// INSTALL_LIB = /usr/local/lib
// INSTALL_INCLUDE = /usr/local/include
强烈建议安装 2.0 版的LAPACK
,ARPACK
自带
修改ARmake.inc
HOME = /home/ycg/Software
home = $(HOME)/ARPACK
FC = gfortran
FFLAGS = -O
MAKE = make
修改完毕后
make lib
编译中会出现两个警告,
其中一个说警告:覆盖关于目标“.f.o”的命令
是由于各个子目录下对 .f.o 的自动推导有重复所致,可以不用理会;
另一个说ASSIGN 不支持
,是因为BLAS
文件夹下两个函数文件dnrm2.f
和snrm2.f
太老所致,替换为最新的版本即可。
编译算例EXAMPLES/NONSYM
报错
dndrv3.f:(.text+0x23f):对‘dpttrf_’未定义的引用
dndrv3.f:(.text+0x516):对‘dpttrs_’未定义的引用
这是因为Makefile
中PRECISIONS
变量
包含的编译选项不够,导致LAPACK
相关函数文件未编译所致,
在其最后加上sdrv
即可解决。
在函数‘second_’中:
second.f:(.text+0x11):对‘etime_’未定义的引用
首先修改UTIL/second.f
,将第三行REAL T
至倒数第五行 RETURN
之间的行全部注释,然后在倒数第六行添加
CALL CPU_TIME( T )
其他额外选项可以参考LAPACK
文件夹下的Makefile
sudo apt-get install f2c
创建mpi_build
和mpi_install
文件夹
cd mpi_build/
../mpich-3.2/configure -prefix=/home/ycg/Software/mpi_install \
--enable-fast=all,O3 --enable-g=dbg,mem,log 2>&1 |tee ycg_c.txt
make 2>&1 |tee ycg_m.txt
sudo make install 2>&1| tee ycg_mi.txt
./configure
会在mpi_build
文件夹生成配置信息和Makefile
make
会在mpi_build
文件夹下编译
make istall
会在mpi_install
下的include
和lib
文件夹生成mpi.h
libmpi.a
等文件,在bin
文件夹下生成mpicc mpiexec mpicxx
等命令
然后就可以执行类似
~/Software/mpi_install/bin/mpiexec -np 4 ./cpi
下面需要把 mpi 的编译命令放入环境变量
sudo vi /etc/profile
添加
export PATH=$PATH:/home/ycg/Software/mpi_install/bin
需要注销后才能使用,如果想立即看效果,可以
source /etc/profile
这样在当前终端界面下可以使用mpi
的相关命令
卸载
make uninstall
会把mpi_install
下的很多文件删除,不知道为啥删除不干净
make clean
make distclean
然后把mpi_install
mpi_build
文件夹删除即可