Relion在K1 Power Linux实践

本篇文章主要介绍了冷冻电镜方案中,Relion软件如何在K1 PowerLinux上进行部署。 完整的记录了过程,其中关于几个常用的HPC软件方面的下载方式也一并提供出来。比如XLC、ESSL、SpectrumMPI都是社区版。可以注册IBM ID之后下载。

测试环境背景

硬件环境

服务器型号FP5468G2

部件 描述 数量
CPU IBM OpenPOWERSforza 22Core 2.75Ghz 190W 2颗 2
内存 32GB DDR4 RDIMM 2666MHz 16
硬盘 SATA 3.5寸4T 20
硬盘 NVMe 960GB 1
RAID1 十六通道高性能SAS RAID卡2G缓存支持0,1,5,6,10,50,60 1
RAID2 八通道高性能SAS RAID卡2G缓存支持0,1,5,6,10,50,60 1
PCIe标准卡 10双光口 2
GPU NVIDIA T4 16
电源 2000W金牌电源 双电源2+2冗余 1

软件环境

OS CentOS-76-power9-Minimal-1810.iso
kernel 4.14.0-115.el7a.0.1.ppc64le
GPU-driver 440.33.01
CUDA cuda-repo-rhel7-10-2-local-10.2.89-440.33.01-1.0-1.ppc64le.rpm
RELION 3.07
ESSL essl.community.6.2.0-0.tar.gz
cmake3 version 3.13.5
cmake version 2.8.12.2

安装包准备:
安装操作系统、CUDA(包含NVIDIA-Driver)

relion下载:

git clone https://github.com/3dem/relion.git
relionbenchmark下载(50G):
wget -c ftp://ftp.mrc-lmb.cam.ac.uk/pub/scheres/relion_benchmark.tar.gz

下载fftw

wget http://www.fftw.org/fftw-3.3.8.tar.gz

XLC下载 (需要注册)

https://www.ibm.com/us-en/marketplace/xl-fortran-linux-compiler-power
IBM_XL_FORTRAN_V16.1.1.3_LINUX_COMMUNITY.tar.gz
https://www.ibm.com/us-en/marketplace/xl-cpp-linux-compiler-power
IBM_XL_C_CPP_V16.1.1.3_LINUX_COMMUNITY.tar.gz

下载spectrum MPI(国外能直接下载,国内不行)

https://www.ibm.com/us-en/marketplace/spectrum-mpi

下载ESSL(国外能直接下载国内不行)

https://developer.ibm.com/answers/questions/506654/essl-for-linux-on-power-community-edition-v62-avai/

下载OpenMPI

wget https://download.open-mpi.org/release/open-mpi/v4.0/openmpi-4.0.3.tar.gz

# relion_on_OpowerPOWER——_testPart1 test with opmpi and gcc
############################create home folder###################
mkdir /data
fdisk nvme0n1 n 1 p 1
/dev/nvme0n1p1 on /data type ext4 (rw,relatime,data=ordered)
yum install cmake cmake3#################################compile openmpi####################
mkdir /data/sunjian
cd /data/sunjian
wget https://download.open-mpi.org/release/open-mpi/v4.0/openmpi-4.0.3.tar.gz
tar zxvf openmpi-4.0.3.tar.gz
cd openmpi-4.0.3
./configure --prefix (default in /usr/local)
make -j32
make install###########################install fftw ###########################
cd /data/sunjian
tar -zxvf fftw-3.3.8.tar.gz
rm -rf fftw-3.3.8.tar.gz
cd fftw-3.3.8
./configure --prefix /home/sunjian/relion/FFTW --enable-float --enable-openmp
make -j32
make install#################################compile relion#####################
git clone https://github.com/3dem/relion.git
cd relion
cat > compile_p100.sh << - EOF
export FFTW_HOME=/data/sunjian/FFTW3
export FFTW_LIB=$FFTW_HOME/lib
export FFTW_INCLUDE=$FFTW_HOME/include# -DGUI=OFF and -DFORCE_OWN_FFTW=OFF
CC=gcc CXX=g++ cmake3 -DBUILD_SHARED_LIBS=OFF  -DCMAKE_C_FLAGS="-O3 -ftree-vectorize -ffast-math" -DCMAKE_CXX_FLAGS="-O3 -ftree-vectorize -ffast-math" -DCMAKE_EXE_LINKER_FLAGS="-L/opt/ibmmath/essl/6.2/lib64 -lessl" -DTIMING=ON -DTIMING_FFTW=ON -DCudaTexture=ON -DCUDA_ARCH=75 -DGUI=OFF -DCMAKE_BUILD_TYPE=release -DFORCE_OWN_FFTW=OFF -DFORCE_OWN_FLTK=OFF ..
EOF-
yum install -y libtiff-devel.ppc64le libtiff-static.ppc64le
mkdir build_p100
yum install -y libtiff-devel.ppc64le libtiff-static.ppc64le
mkdir build_p100
cd build_p100
sh ../compile_p100.sh
make
ldd bin/relion_refine_mpi
bin/relion_refine_mpi --version
###############################relion_benchmark###################
tar -zxvf relion_benchmark.tar.gz
cd relion_benchmark
mkdir class3d
yum -y install time
cat > run.sh << - EOF
export PATH=/home/sunjian/relion/relion/build_P100/bin/:$PATH#export CUDA_VISIBLE_DEVICES="0,1,2,3,4,5,6,7"
(time -p mpirun -bind-to none -n 16 relion_refine_mpi --j 11 --gpu 0:1:2:3 --pool 100 \--dont_combine_weights_via_disc --i Particles/shiny_2sets.star --ref emd_2660.map:mrc --firstiter_cc \--ini_high 60 --ctf --ctf_corrected_ref --iter 25 --tau2_fudge 4 --particle_diameter 360 --K 6 \--flatten_solvent --zero_mask --oversampling 1 --healpix_order 2 --offset_range 5 --offset_step 2 --sym C1 \--norm --scale --random_seed 0 --maxsig 500 --fast_subsets --o class3d/test01) >run_GPU4_9x22.log 2>&1
EOF
-
sh run.sh &
tail -f run_GPU4_9x22.log (其中最后real就是程序运行时间)##
####
####
#####
######
#######part2 install relion test with spectrum mpi and essl
############################create home folder###################
mkdir /data
fdisk nvme0n1 n 1 p 1
/dev/nvme0n1p1 on /data type ext4 (rw,relatime,data=ordered)
yum install cmake cmake3mkdir /data/sunjian
#############################install XLC########################
tar -zxvf IBM_XL_C_CPP_V16.1.1.3_LINUX_COMMUNITY.tar.gz
#############################install XLC########################
tar -zxvf IBM_XL_C_CPP_V16.1.1.3_LINUX_COMMUNITY.tar.gz
cd images/littleEndian/rhel
sudo yum -y install *.rpm
#############################install XL FORTRAN#################
tar -zxvf IBM_XL_FORTRAN_V16.1.1.3_LINUX_COMMUNITY.tar.gz
cd images/littleEndian/rhel
sudo yum -y install *.rpm
rpm -qlp xlf.16.1.1-16.1.1.3-190426.ppc64le.rpm#############################install SpectrumMPI################
cd /data/sunjian
ibm_smpi-10.03.01.00rtm5-rh7_20191114.ppc64le.rpm
ibm_smpi-devel-10.03.01.00rtm5-rh7_20191114.ppc64le.rpm
ibm_smpi_gpusupport-10.03.01.00rtm5-rh7_20191114.ppc64le.rpm
ibm_smpi_lic_c-10.03.00rtm5-rh7_20191114.ppc64le.rpm
sudo yum install -y *.rpmexport IBM_SPECTRUM_MPI_LICENSE_ACCEPT=yes (need root exec)
sh /opt/ibm/spectrum_mpi/lap_ce/bin/accept_spectrum_mpi_license.shsh /opt/ibm/spectrum_mpi/lap_ce/bin/accept_spectrum_mpi_license.sh
export PATH=/opt/ibm/spectrum_mpi/bin:$PATH
which mpirun
mpirun -np 1 date
cd /data/sunjian#############################install ESSL ######################
cd /data/sunjian
tar -zxvf essl.community.6.2.0-0.tar.gz
export IBM_ESSL_LICENSE_ACCEPT=yes (Need root exec)
rpm -ivh essl.license.community-6.2.0-0.ppc64le.rpm (need root exec)
export IBM_ESSL_LICENSE_ACCEPT=yes (Need root exec)
rpm -ivh essl.license.community-6.2.0-0.ppc64le.rpm (need root exec)
cd RHEL/RHEL7
sudo yum -y install *.rpm###########################install fftw with ESSL###########################
cd /data/sunjian
cp -r /opt/ibmmath/essl/6.2/FFTW3  .
cd FFTW3/src
make
mv lib64 ../
cd lib64
ln -fs libfftw3_essl_gcc.a libfftw3f.a
ln -fs libfftw3_essl_gcc.a libfftw3.a
cd ../includeln -fs libfftw3_essl_gcc.a libfftw3.a
cd ../include
ln -fs fftw3_essl.h fftw3.h
///****if you want to use GCC not xlc ,pls use Makefile.gcc in src directory not Makefile*********///
#################################compile relion SPECMPI#####################
git clone https://github.com/3dem/relion.git
cd relion
cat > compile_p100.sh << - EOF
export FFTW_HOME=/data/sunjian/FFTW3
export FFTW_LIB=$FFTW_HOME/lib64
export FFTW_INCLUDE=$FFTW_HOME/include# -DGUI=OFF and -DFORCE_OWN_FFTW=OFF
CC=gcc CXX=g++ cmake3 -DBUILD_SHARED_LIBS=OFF  -DCMAKE_C_FLAGS="-O3 -ftree-vectorize -ffast-math" -DCMAKE_CXX_FLAGS="-O3 -ftree-vectorize -ffast-math" -DCMAKE_EXE_LINKER_FLAGS="-L/opt/ibmmath/essl/6.2/lib64 -lessl" -DTIMING=ON -DTIMING_FFTW=ON -DCudaTexture=ON -DCUDA_ARCH=75 -DGUI=OFF -DCMAKE_BUILD_TYPE=release -DFORCE_OWN_FFTW=OFF -DFORCE_OWN_FLTK=OFF ..EOF-
yum install -y libtiff-devel.ppc64le libtiff-static.ppc64le
mkdir build_p100
cd build_p100
sh ../compile_p100.sh
make
sh ../compile_p100.sh
make
ldd bin/relion_refine_mpi
bin/relion_refine_mpi --help
###############################relion_benchmark###################
tar -zxvf relion_benchmark.tar.gz
cd relion_benchmark
mkdir class3d
yum -y install time
cat > run.sh << - EOF
export PATH=/home/sunjian/relion/relion/build_essl_P100/bin:/opt/ibm/spectrum_mpi/bin:$PATH#export CUDA_VISIBLE_DEVICES="0,1,2,3,4,5,6,7"
(time -p mpirun -pami_noib -bind-to none -n 16 relion_refine_mpi --j 11 --gpu 0:1:2:3 --pool 100 \--dont_combine_weights_via_disc --i Particles/shiny_2sets.star --ref emd_2660.map:mrc --firstiter_cc \--ini_high 60 --ctf --ctf_corrected_ref --iter 25 --tau2_fudge 4 --particle_diameter 360 --K 6 \--flatten_solvent --zero_mask --oversampling 1 --healpix_order 2 --offset_range 5 --offset_step 2 --sym C1 \    --ini_high 60 --ctf --ctf_corrected_ref --iter 25 --tau2_fudge 4 --particle_diameter 360 --K 6 \--flatten_solvent --zero_mask --oversampling 1 --healpix_order 2 --offset_range 5 --offset_step 2 --sym C1 \--norm --scale --random_seed 0 --maxsig 500 --fast_subsets --o class3d/test01) >run_GPU2_essl_9x22.log 2>&1EOF
-

附录:查看relion的版本

[root@kmaster ~/relion/relion_benchmark_shell]# ../relion/build_P100/bin/relion_refine_mpi --help
RELION version: 3.0.8
Precision: BASE=double, CUDA-ACC=single=== RELION MPI setup ===+ Number of MPI processes             = 1+ Master  (0) runs on host            = kmaster=================在relion目录下,编译T4, Cat
export FFTW_HOME=/data/rchen/FFTW3
export FFTW_LIB=$FFTW_HOME/lib
export FFTW_INCLUDE=$FFTW_HOME/includeexport OMPI_CC=gcc
export OMPI_CXX=g++# -DGUI=OFF and -DFORCE_OWN_FFTW=OFF
CC=gcc CXX=g++ cmake3 -DBUILD_SHARED_LIBS=OFF  -DCMAKE_C_FLAGS="-O3 -ftree-vectorize -ffast-math" -DCMAKE_CXX_FLAGS="-O3 -ftree-vectorize -ffast-math" -DCMAKE_EXE_LINKER_FLAGS="-L/opt/ibmmath/essl/6.2/lib64 -lessl" -DTIMING=ON -DTIMING_FFTW=ON -DCudaTexture=ON -DCUDA_ARCH=75 -DGUI=OFF -DCMAKE_BUILD_TYPE=release -DFORCE_OWN_FFTW=OFF -DFORCE_OWN_FLTK=OFF ..解压renlionbenchmark目录,执行nohup run.sh &
export PATH=/data/rchen/relion/build-essl-T4/bin:/opt/ibm/spectrum_mpi/bin:$PATH#export CUDA_VISIBLE_DEVICES="0,1,2,3,4,5,6,7"
(time -p mpirun -pami_noib -bind-to none -n 17 relion_refine_mpi --j 11 --gpu 0:1 --pool 100 \--dont_combine_weights_via_disc --i Particles/shiny_2sets.star --ref emd_2660.map:mrc --firstiter_cc \--ini_high 60 --ctf --ctf_corrected_ref --iter 25 --tau2_fudge 4 --particle_diameter 360 --K 6 \--flatten_solvent --zero_mask --oversampling 1 --healpix_order 2 --offset_range 5 --offset_step 2 --sym C1 \--norm --scale --random_seed 0 --maxsig 500 --fast_subsets --o class3d/test01) >run_GPU2_9x22.log 2>&1[root@relion /data/rchen/relion_benchmark]# cat run16.sh
export PATH=/data/rchen/relion/build-essl-T4/bin:/opt/ibm/spectrum_mpi/bin:$PATH#export CUDA_VISIBLE_DEVICES="0,1,2,3,4,5,6,7"
#(time -p mpirun -pami_noib -bind-to none -n 33 relion_refine_mpi --j 5 --gpu 0:1:2:3:4:5:6:7:8:9:10:11:12:13:14:15 --pool 100 \
#    --dont_combine_weights_via_disc --i Particles/shiny_2sets.star --ref emd_2660.map:mrc --firstiter_cc \
#    --ini_high 60 --ctf --ctf_corrected_ref --iter 25 --tau2_fudge 4 --particle_diameter 360 --K 6 \
#    --flatten_solvent --zero_mask --oversampling 1 --healpix_order 2 --offset_range 5 --offset_step 2 --sym C1 \
#    --norm --scale --random_seed 0 --maxsig 500 --fast_subsets --o class3d/test01) >run_GPU16_33x5.log 2>&1(time -p mpirun -pami_noib -bind-to none -n 17 relion_refine_mpi --j 11 --gpu 0:1:2:3:4:5:6:7:8:9:10:11:12:13:14:15 --pool 100 \--dont_combine_weights_via_disc --i Particles/shiny_2sets.star --ref emd_2660.map:mrc --firstiter_cc \--ini_high 60 --ctf --ctf_corrected_ref --iter 25 --tau2_fudge 4 --particle_diameter 360 --K 6 \--flatten_solvent --zero_mask --oversampling 1 --healpix_order 2 --offset_range 5 --offset_step 2 --sym C1 \--norm --scale --random_seed 0 --maxsig 500 --fast_subsets --o class3d/test01) >run_GPU16_17x11.log 2>&1

编译不同架构的GPU的区别,在-DCUDA_ARCH这个参数上面,架构对应是不同的。T4是75,

Relion在K1 Power Linux实践相关推荐

  1. K1 Power Linux上Stream测试内存带宽

    K1 Power Linux上Stream测试内存带宽 本篇文章介绍在K1 Power Linux上理论内存带宽结算,实测内存带宽方法,衡量服务器的内存带宽水平.需要说明的是,对于Scale UP的P ...

  2. 中国PostgreSQL培训认证推出“浪潮K1 Power”认证课程

    中国PostgreSQL培训认证推出"浪潮K1 Power"认证课程 随着PostgreSQL在国内重点行业应用速度迅猛提升,对复合型技术人才的需求量将越来越大,这就要求知识普及和 ...

  3. 浪潮K1 Power通过ISO/IEC 20243标准认证

    日前,浪潮K1 Power服务器通过ISO/IEC 20243标准认证,成为中国第一个通过该认证的服务器产品线. ISO/IEC 20243标准,也被称为O-TTPS(Open Trusted Tec ...

  4. 联合解决方案 | 亚信科技AntDB数据库携手浪潮K1 Power赋能关键行业数字化转型,助力新基建

    自2022年印发<"十四五"数字经济发展规划>以来,我国数字化发展进入快车道.数据库作为数据存储与计算的基础软件,对筑牢数字经济底座至关重要.服务器是承载数据的重要载体 ...

  5. 南大通用GBase 8s+浪潮K1 Power联合解决方案 助力城市轨道交通国产化进程

    当前,中国是世界上最大的城市轨道交通市场,如火如荼的新基建也加速着城际高速铁路和城市轨道交通的发展.据统计,中国大陆地区已有40个城市开通了城轨交通运营,运营线路超过208条,运行线路总长度达6736 ...

  6. 【观察】浪潮K1 Power:产业升级换挡提速,关键计算保驾护航

    今天,国家对数字经济给予了前所未有的高度重视,在"十四五"规划中,国家就明确提出了要将数字经济核心产业增加值占GDP的比重从7.8%提高到10%,这也意味着未来整个计算产业将会迎来 ...

  7. 培训动态 | 第2期PGCA-浪潮K1 Power培训认证圆满结束

    浪潮 K1 Power 服务器全栈支持 PG 数据库,自 2008 年起,Power 服务器就是 EDB 的战略投资合作平台,POWER8/POWER9服务器能够发挥出 EDB 的最佳性能.作为Pos ...

  8. 《Linux实践及应用》

    2019独角兽企业重金招聘Python工程师标准>>> <Linux实践及应用> 本书以RedHat 9.0为蓝本,系统地介绍Linux的基础知识.Linux系统的安装与 ...

  9. 【组队学习】【32期】Linux实践

    Linux实践 航路开辟者:刘羽中 领航员:六一 航海士:刘洋.王晓亮.陈玉立.六一 基本信息 开源内容:https://github.com/datawhalechina/team-learning ...

  10. 【操作系统原理及Linux实践】 四cpu调度scheduling

    课程: 操作系统原理及Linux实践 cpu调度 调度算法 先来先服务算法(FCFS) Round robin 时间片轮转 最短作业优先 优先级调度算法

最新文章

  1. 7.3.7 - 并发多线程 死锁和递归锁
  2. SpringSecurity简单应用(二)
  3. 盘点关于IDEA的几个调试的实用技巧
  4. 2008年度一个下岗程序员的真实经历
  5. jeecg 数据修改历史日志对比方法
  6. 洛谷P4720 【模板】扩展卢卡斯
  7. 网络安全-应急响应之入侵排查篇及相关工具
  8. 百炼JAVA-----实现家庭收支记账软件
  9. 若依集成minio实现分布式文件存储
  10. 计算机磁盘文件怎么加密,win10怎样对电脑硬盘文件进行加密 windows10给电脑硬盘文件加密教程...
  11. 关于线程 thread (1)概念简介
  12. vertica 数据库 linux,CentOS 7下安装vertica记录
  13. 推特 我们目前不能注册此邮箱地址_英雄联盟手游来了!最简单的下载/安装/注册教程!...
  14. 抖音 文本转换html,html抖音效果CSS
  15. spring定时任务:@Scheduled
  16. Android-S ANR
  17. 用智能指针实行所有权
  18. Sharepoint + Office Infopart + Quick Apps for Sharepoint搭建无纸化工作平台
  19. 好程序员云计算培训分享2020年云计算的发展趋势
  20. 苹果cms10好看的自适应高端大气简洁网站模板带后台

热门文章

  1. IT公司聘用应届生的标准是什么?到底看中应届生的什么?
  2. python normalize函数_Python Wand normalize()用法及代码示例
  3. 小鑫の日常系列故事(七)——小纸条 (字符串) SDUT
  4. 什么是 Sidecar
  5. rand()和rand_r()的区别
  6. 当年黄光裕有多么霸气?一张合影令人震撼,现任首富王健林成小弟
  7. ElementPlus 侧边栏右侧空隙
  8. Python基础教学3:变量名和赋值
  9. 猿创征文|一个.Net过气开发工程师的成长之路
  10. 蛋糕甜品小程序有哪些,这3款小程序值得收藏!