Relion在K1 Power Linux实践
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实践相关推荐
- K1 Power Linux上Stream测试内存带宽
K1 Power Linux上Stream测试内存带宽 本篇文章介绍在K1 Power Linux上理论内存带宽结算,实测内存带宽方法,衡量服务器的内存带宽水平.需要说明的是,对于Scale UP的P ...
- 中国PostgreSQL培训认证推出“浪潮K1 Power”认证课程
中国PostgreSQL培训认证推出"浪潮K1 Power"认证课程 随着PostgreSQL在国内重点行业应用速度迅猛提升,对复合型技术人才的需求量将越来越大,这就要求知识普及和 ...
- 浪潮K1 Power通过ISO/IEC 20243标准认证
日前,浪潮K1 Power服务器通过ISO/IEC 20243标准认证,成为中国第一个通过该认证的服务器产品线. ISO/IEC 20243标准,也被称为O-TTPS(Open Trusted Tec ...
- 联合解决方案 | 亚信科技AntDB数据库携手浪潮K1 Power赋能关键行业数字化转型,助力新基建
自2022年印发<"十四五"数字经济发展规划>以来,我国数字化发展进入快车道.数据库作为数据存储与计算的基础软件,对筑牢数字经济底座至关重要.服务器是承载数据的重要载体 ...
- 南大通用GBase 8s+浪潮K1 Power联合解决方案 助力城市轨道交通国产化进程
当前,中国是世界上最大的城市轨道交通市场,如火如荼的新基建也加速着城际高速铁路和城市轨道交通的发展.据统计,中国大陆地区已有40个城市开通了城轨交通运营,运营线路超过208条,运行线路总长度达6736 ...
- 【观察】浪潮K1 Power:产业升级换挡提速,关键计算保驾护航
今天,国家对数字经济给予了前所未有的高度重视,在"十四五"规划中,国家就明确提出了要将数字经济核心产业增加值占GDP的比重从7.8%提高到10%,这也意味着未来整个计算产业将会迎来 ...
- 培训动态 | 第2期PGCA-浪潮K1 Power培训认证圆满结束
浪潮 K1 Power 服务器全栈支持 PG 数据库,自 2008 年起,Power 服务器就是 EDB 的战略投资合作平台,POWER8/POWER9服务器能够发挥出 EDB 的最佳性能.作为Pos ...
- 《Linux实践及应用》
2019独角兽企业重金招聘Python工程师标准>>> <Linux实践及应用> 本书以RedHat 9.0为蓝本,系统地介绍Linux的基础知识.Linux系统的安装与 ...
- 【组队学习】【32期】Linux实践
Linux实践 航路开辟者:刘羽中 领航员:六一 航海士:刘洋.王晓亮.陈玉立.六一 基本信息 开源内容:https://github.com/datawhalechina/team-learning ...
- 【操作系统原理及Linux实践】 四cpu调度scheduling
课程: 操作系统原理及Linux实践 cpu调度 调度算法 先来先服务算法(FCFS) Round robin 时间片轮转 最短作业优先 优先级调度算法
最新文章
- 7.3.7 - 并发多线程 死锁和递归锁
- SpringSecurity简单应用(二)
- 盘点关于IDEA的几个调试的实用技巧
- 2008年度一个下岗程序员的真实经历
- jeecg 数据修改历史日志对比方法
- 洛谷P4720 【模板】扩展卢卡斯
- 网络安全-应急响应之入侵排查篇及相关工具
- 百炼JAVA-----实现家庭收支记账软件
- 若依集成minio实现分布式文件存储
- 计算机磁盘文件怎么加密,win10怎样对电脑硬盘文件进行加密 windows10给电脑硬盘文件加密教程...
- 关于线程 thread (1)概念简介
- vertica 数据库 linux,CentOS 7下安装vertica记录
- 推特 我们目前不能注册此邮箱地址_英雄联盟手游来了!最简单的下载/安装/注册教程!...
- 抖音 文本转换html,html抖音效果CSS
- spring定时任务:@Scheduled
- Android-S ANR
- 用智能指针实行所有权
- Sharepoint + Office Infopart + Quick Apps for Sharepoint搭建无纸化工作平台
- 好程序员云计算培训分享2020年云计算的发展趋势
- 苹果cms10好看的自适应高端大气简洁网站模板带后台
热门文章
- IT公司聘用应届生的标准是什么?到底看中应届生的什么?
- python normalize函数_Python Wand normalize()用法及代码示例
- 小鑫の日常系列故事(七)——小纸条 (字符串) SDUT
- 什么是 Sidecar
- rand()和rand_r()的区别
- 当年黄光裕有多么霸气?一张合影令人震撼,现任首富王健林成小弟
- ElementPlus 侧边栏右侧空隙
- Python基础教学3:变量名和赋值
- 猿创征文|一个.Net过气开发工程师的成长之路
- 蛋糕甜品小程序有哪些,这3款小程序值得收藏!