注意编译过程中需要海量的内存(>=64GB for -j 24)。
硬件环境
CPU: 50 cores
内存: 80GB注意编译过程中需要海量的内存(>=64GB for -j 24)。
yum install boost-devel libstdc++ zlib zlib-devel bzip2
2. 编译器的选择
使用GCC编译器
最新的Rosetta代码编译依赖完整的C++11特性,因此我们需要更新系统自带的gcc编译器。如果使用gcc-8.21, 完全可以编译通过Rosetta.
CentOS 7.8升级gcc-8.2
使用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的编译与安装
环境变量配置:
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