需要的包和编译器 - 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