almaBTE 安装避坑指南
almaBTE 官方介绍:
almaBTE
consists of a library and a collection of executables allowing the user to calculate thermal transport properties of heterogeneous structures, using only ab-initio data, and solving the phonon Boltzmann Transport Equation (BTE).
almaBTE安装
官网给出了 docker image for v1.3.1
https://1drv.ms/u/s!AsAFTyZWWh4MoVgpWj1QuuUR4Jzd, image是放在OneDrive上的,你懂的,国内直连不可以,一直纳闷为什么客户端OneDrive能用,网页却无法链接。
另外我还不会docker部署,就先放弃吧,老老实实源码安装。
以下是具体安装过程
官方文档安装方法
按照官方文档的操作
只需要配置 cmake boost hdf5
sudo apt-get install cmake libboost-all-dev libhdf5-dev # ubuntu 下配置环境 (这三个的具体作用以后再说。。。)
如果你是centos
sudo yum install cmake3 boost-devel hdf5-devel # centos 下配置环境
关于cmake
因为我在centos环境下yum install cmake
安装的cmake
不认Intel编译器环境所以建议大家安装cmake3
然后就可以编译了
sudo apt-get install cmake libboost-all-dev libhdf5-dev # ubuntu 下配置环境
#
wget http://www.almabte.eu/wp-content/uploads/2018/10/almabte-v1.3.2.tar.gz
tar -zxvf almabte-v1.3.2.tar.gz
cd almabte-v1.3.2
mkdir build
cd build
cmake3 .. # or cmake ..
# 如果过程中没有报错,会打印出找到的编译器环境以及boost,hdf5
#然后就可以
make -j 4 all # 并行make,4是调用4个核 或者 make all
#make 运行完之后进行测试
make -j 4 test # 测试过程会打印Passed or Failed
# 如果足够幸运,安装完成那么build目录下src中会出现almaBET的所有可执行文件
#添加进环境变量
echo 'export PATH=$PATH:"<alma_dir>/build/src" ' >> ~/.bashrc #alma_dir改为alma软件的路径
source ~/.bashrc
可以尽情玩耍了!!!
理论上说这样就该成功了,可是安装过程中总会遇到一些问题,比如你没有管理员权限。。
服务器上个人用户安装 almaBTE
就我亲身经历而言,有管理员权限我也没有很简单的安装上almaBTE;百度之后按照编译安装almabte-1.3.1心得这一篇教程,最终安装成功。但这中间还是遇到一些问题,在这里码一码。
前期准备
并行计算库,hdf5-1.8.20,boost-1.68.0。
安装过程
具体的编译过程参考编译安装almabte-1.3.1心得,我这里最简单的列一下过程。
- 并行环境一般服务器都会安装好,这里不再赘述,我用的Intel全家桶。另外
cmake
的安装这里也不赘述。 -
hdf5-1.8.20下载编译, 常规的
./confugure && make && make install
wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8/hdf5-1.8.20/src/hdf5-1.8.20.tar.bz2 tar -jxvf hdf5-1.8.20.tar.bz2 cd hdf5-1.8.20 ./configure --prefix=/home/js/software/hdf5-1.8.20 --enable-cxx #设置安装目录,并使用c make make isntall # 安装以后检查是否生成 libhdf5_cpp.so #加入环境变量 export PATH=$PATH:/home/js/software/hdf5-1.8.20/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/js/software/hdf5-1.8.20/lib export CPATH=$CPATH:/home/js/software/hdf5-1.8.20/include
-
Boost编译
这里要注意修改一个
project-config.jam
wget https://dl.bintray.com/boostorg/release/1.68.0/source/boost_1_68_0.tar.bz2 tar -jxvf boost_1_68_0.tar.bz2 cd boost_1_68_0 ./bootstrap.sh --prefix=/home/js/software/boost_1_68_0 #之后会生成一个project-config.jam文件,用vi之类的打开,在末尾加上 using mpi : /opt/intel/impi/2019.2.187/intel64/bin/mpiccmpicc ; # 声明mpicc路径,注意空格, #编译完之后应该有libboost_mpi.so、libboost_mpi.a之类的,否则编译失败 #总之一定要生成boost的mpi库,因为编译almabte要用到。这里参考的是https://www.boost.org/doc/libs/1_70_0/doc/html/mpi/getting_started.html #然后编译安装boost ./b2 ./b2 install
-
编译almaBTE
进入almaBTE文件夹
mkdir build cd build cmake .. # or cmake3 ..
如果正常的话这里就会打印,找到了相关的Intel编译器,以及boost和hdf5。
如果没有成功的话,则修改上层目录中的
CMakeLists.txt
添加boost
和hdf5
的路径vi ../CMakeLists.txt
找到
# Find some components from Boost.
增加一行
set(BOOST_ROOT "/home/js/software/boost_1_68_0") ####修改这里为boost的路径
最终为
# Find some components from Boost. set(BOOST_ROOT "/home/js/software/boost_1_68_0") ####修改这里为boost的路径 find_package(Boost COMPONENTS system filesystem mpi serialization log REQUIRED) include_directories(${Boost_INCLUDE_DIR}) link_directories(${Boost_LIBRARY_DIR}) add_definitions(-DBOOST_LOG_DYN_LINK) set(Boost_USE_MULTITHREADED OFF)
如果hdf5报错,同样在
CMakeLists.txt
中,定位到# Try to find hdf5 in the system.
添加
set ( HDF5_ROOT "/home/js/software/hdf5-1.8.20" )
解决上述问题之后,进入
almaBTE
的build
文件夹cmake .. make -j 4 all make -j 4 test echo 'export PATH=$PATH:"<alma_dir>/build/src" ' >> ~/.bashrc #alma_dir改为alma软件的路径 source ~/.bashrc
test
完成以后加入环境变量,就可以在任何地方玩耍了。
总结
总结一下这次almaBTE的安装,
- Linux下软件安装一定要确定清楚依赖
- 同样的依赖,编译依赖时,参数不同,产生的
libxxx.so
等不同,可能作用就不一样了。默认安装有时候会有问题。这就感觉安装软件没有win那样双击简便。这也和Linux特色有关。 - Linux就是用来折腾的
我曾经尝试过把centos7作为主力系统,vm中win10做辅助系统。但是用了1个星期后,我还是转回了我的win10。。。主要是离不开win10,vm中win又时常崩溃(原因不知),又没时间折腾了。如果Linux(centos7)下的软件生态更好一点,也许就完全可以办公了。Linux敲代码还是很舒服,毕竟各种IDE都支持Linux。(用centos而不用其它的Ubuntu等,是因为要做计算服务器用,据说centos更稳定,我也没做过测试。)
参考
-
编译安装almabte-1.3.1心得 https://blog.csdn.net/samzlhd/article/details/90453405