注意编译过程中需要海量的内存(>=64GB for -j 24)。
硬件环境
CPU: 50 cores
内存: 80GB
1. 安装依赖
yum install boost-devel libstdc++ zlib zlib-devel bzip2
2. 编译器的选择
-
使用GCC编译器
最新的Rosetta代码编译依赖完整的C++11特性,因此我们需要更新系统自带的gcc编译器。如果使用gcc-8.21, 完全可以编译通过Rosetta.
-
使用Clang编译器
版本Clang 3.4.2, 此外你需要额外编译clang版本的openmpi。clang3.4完全兼容C++11 regex。推荐使用!并且更加灵活和快速。
yum install epel-release
yum install clang clang-devel clang-analyzer
3.OpenMPI的编译与安装
-
GCC编译环境:
环境变量配置:
vim ~/.bash_profile
#OpenMPI
export PATH=$PATH:/usr/local/openmpi/bin
export LD_LIBRARY_PATH=/usr/local/openmpi/lib
source ~/.bash_profile #立即生效
编译安装OpenMPI3.1.0
tar -zxvf openmpi-3.1.0.tar.gz
cd openmpi-3.1.0/
./configure --prefix=/usr/local/openmpi
make -j 48
make install
-
Clang编译环境:
环境变量配置:
vim ~/.bash_profile
export PATH=$PATH:/usr/local/openmpi_clang/bin
source ~/.bash_profile #立即生效
基于clang编译安装OpenMPI3.1.0
#自行编译的方法:clang.并创建软连接。
tar -zxvf openmpi-3.1.0.tar.gz
cd openmpi-3.1.0/
./configure CC=clang CXX=clang++ --prefix=/usr/local/openmpi_clang
make -j 48
make install
ln -s /usr/local/openmpi_clang/bin/mpirun /usr/local/bin/mpiclang
运行时应该使用mpiclang,而不是mpirun(gcc),避免影响其他gcc编译软件的并行。
4.Rosetta的编译与安装
环境变量配置:
vim ~/.bashrc #打开.bashrc
#Rosetta
export ROSETTA=/opt/rosetta2019
export ROSETTA3_DB=$ROSETTA/main/database
export ROSETTA_BIN=$ROSETTA/main/source/bin
export PATH=$PATH:$ROSETTA_BIN
export LD_LIBRARY_PATH=$ROSETTA/main/source/bin:$LD_LIBRARY_PATH
source ~/.bashrc #立即生效
编译多线程模式版本的Rosetta, 此处以调用48个核编译为例:
tar zxvf rosetta_src_2019.12.60667_bundle.tgz
mv rosetta_src_2019.12.60667_bundle.tgz rosetta2019
cd $ROSETTA/main/source/
# 使用gcc编译:
./scons.py -j 48 mode=release bin extras=mpi #gcc
# 使用clang编译:
./scons.py -j 48 mode=release bin extras=mpi cxx=clang
5. 测试运行
antibody.mpi.linuxgccrelease # gcc
antibody.mpi.linuxclangrelease # clang
参考资料
1. https://zhuanlan.zhihu.com/p/58384830
2. https://www.cnblogs.com/wq242424/p/5110301.html