需要的包和编译器 - longing3000/oops GitHub Wiki
oops
是以c++
为基础编写的面向对象的程序,它的work需要安装一些额外的包和软件,平台是linux。
编译器方面
c++
程序编译需要g++
,部分包使用了fortran,c,cuda
混合编程,保存输出结果使用了matlab
,并行方面使用了mpi
。此外,某些函数使用与编译器版本有关,因此需要安装特定版本的编译器,否则会出一些错误(matlab版本无影响)。综上,需要:
gcc-4.4.7,g++-4.4.7,nvcc-7.6,gfortran-4.8.5,openmpi
matlab 2013a
此外,编译器安装完成之后,需要配置bash
文件使得程序能够找到特定的包,以及编译器的相关配置。注意有些安装的路径不同,请根据具体的安装结果设置下面的路径。
#cuda compiler
export PATH=/usr/lcoal/cuda:$PAHT
export LD_LIBRARY=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
#Intel compiler
source /opt/intel/bin/compilervars.sh intel64
source /opt/intel/vtune_amplifier_xe/amplxe-vars.sh quiet
source /opt/intel/inspector_xe/inspxe-vars.sh quiet
#OpenMPI
export PATH=/usr/local/openmpi/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/openmpi/lib:$LD_LIBRARY_PATH
#MPI_INTEL=false
#MPICH2
export PATH=/opt/mpich2/bin:$PATH
#matlab
matlabroot=/usr/local/MATLAB/R2013a
export PATH=$matlabroot/bin:$PATH
export LD_LIBRARY_PATH=$matlabroot/bin/glnxa64:$LD_LIBRARY_PATH
export LD_LLIBRARY_PATH=$matlabroot/sys/os/glnxa64:$LD_LIBRARY_PATH
HAS_MATLAB=true
包方面
除了安装编译器外,还需要配置包和程序里面的路径。库需要自己下载,版本务必保持一致,部分函数编译通过可能需要。此外,有些包需要提前安装,例如blas,lapack
,编译时需要根据提示安装,这些包比较多且杂,视具体问题根据需求安装。需要的包有:
armadillo-6.500.5,boost.1.60,mkl
blas,lapack
相应的需要配置环境变量以便程序找到包的位置,一类最常见的问题就是找不到包,确保报错提示的包装过,且也相应配置了,且source
过了,有时候虽然安装了,但是并没有source
或者没有挂载,使得程序编译不通过。
#armadillo-6.500.5
export ARMA_INC_PATH=your_arma_path/include
export ARMA_LIB="blas lapack"
#oops
OOPS_PATH=your_oops_path
#MKL
export MKL_ROOT=/opt/intel/mkl/
export USE_MKL=true