开发者
鲲鹏GPU生态应用Relion移植指南 (CentOS 8.2)
鲲鹏GPU生态应用Relion移植指南 (CentOS 8.2)
发表于2022/10/18
7440

1 介绍

单颗粒冷冻电镜是结构生物学研究的重要手段之一,冷冻电镜的模型重构通常需要对几万甚至几十万张投影图片进行分析、组装和优化,计算量巨大,这需要先进的计算架构配合有效的算法才能实现。

Relion是专门为低温电子显微镜(cryo-EM)设计的图像处理软件。由MRC分子生物学实验室的Sjors Scheres组开发的Relion框架正在革新冷冻电磁领域。该软件在通过电子冷冻显微镜数据的单颗粒分析来优化大分子结构。Relion采用经验贝叶斯方法对多个3D重建或2D类平均值进行细化。借助GPU CUDA并行计算架构,改进了算法,GPU解决了Cryo-EM中计算量最大的过程,例如粒子自动选取,2D和3D图像分类以及高分辨率图像细化。

关于RELION的更多信息请访问RELION官网。

语言:C++/CUDA

一句话描述:Relion 是由 MRC 的 Scheres 在 2012 年发布的针对单颗粒冷冻电镜图片进行处理的框架。

开源协议:GPLv3

建议的版本

建议使用版本为“RELION 3.1.2”。

2 环境要求

硬件要求

硬件要求如表2-1所示。

表2-1 硬件要求

项目

说明

CPU

Kunpeng 920

GPU

NVIDIA Tesla A100

软件要求

软件要求如表2-2所示。

表2-2 软件要求

项目

版本

下载地址

RELION

3.1.2

https://github.com/3dem/relion/archive/refs/tags/3.1.2.tar.gz

毕昇编译器

1.3.3

https://mirrors.huaweicloud.com/kunpeng/archive/compiler/bisheng_compiler/bisheng-compiler-1.3.3-aarch64-linux.tar.gz

HMPI

21.0

https://support.huaweicloud.com/usermanual-kunpenghpcs/userg_huaweimpi_0011.html

FFTW

3.3.8

https://fftw.org/pub/fftw/fftw-3.3.8.tar.gz

cmake

3.8.1

https://cmake.org/files/v3.8/cmake-3.8.1.tar.gz

Nvidia CUDA组件

11.4

https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda_11.4.0_470.42.01_linux_sbsa.run

测试算例

relion_benchmark.tar.gz

ftp://ftp.mrc-lmb.cam.ac.uk/pub/scheres/relion_benchmark.tar.gz

操作系统要求

操作系统要求如表2-3所示。

表2-3 操作系统要求

项目

版本

下载地址

CentOS

8.2

https://www.centos.org/download/

Kernel

4.18.0-193.el8.aarch64

https://www.centos.org/download/

3 移植规划数据

本章节给出RELION软件在移植过程中涉及到的相关软件安装规划路径的用途及详细说明。

表3-1 移植规划数据

序号

软件安装规划路径

用途

说明

1

-

基础环境搭建中的各安装包安装路径。

参考《HPC解决方案 基础环境搭建

指导书》中“安装规划数据”章

节。

2

/path/to/bisheng-1.3.3

毕昇编译器的安装规划路径。

这里的安装规划路径只是一个举例说明,建议部署在共享路径中。现网需要根据实际情况调整,后续章节凡是遇到安装路径的命令,都以现网实际规划的安装路径为准进行替换,不再单独说明。

3

/path/to/HMPI

HMPI的安装规划路径

4

/path/to/ NVIDIA-CUDA

NVIDIA-CUDA组件的安装规划路径。

5

/path/to/FFTW

FFTW的安装规划路径。

6

/path/to/CMAKE

CMAKE的安装规划路径。

7

path/to/wxWidgets

wxWidgets的安装规划路径。

8

path/to/CTFFIND

CTFFIND的安装规划路径。

9

/path/to/RELION

RELION的安装规划路径。

10

/path/to/CASE

RELION的算例文件存放规划路径。

4 配置编译环境

前提条件

使用SFTP工具将各安装包上传至服务器对应目录下。

配置流程

表4-1 配置流程

序号

配置项

说明

1

基础环境搭建

参考《HPC解决方案 基础环境搭建

指导书》中“集群场景环境搭建”章

节。

2

安装毕昇编译器

参考《毕昇编译器》中“安装毕昇编译器”章

3

安装HMPI

参考《源码安装Hyper MPI》中“毕昇编译Hyper MPI软件包”章节 。

4

禁用nouveau驱动

参考4.1禁用nouveau驱动。

5

安装NVIDIA-CUDA组件

参考4.2安装NVIDIA-CUDA组件。

6

安装FFTW

参考4.3 安装FFTW。

7

安装cmake

参考4.4 安装cmake。

8

安装wxWidgets

参考4.5 安装wxWidgets。

9

安装CTFFIND

参考4.6 安装CTFFIND。

4.1 禁用nouveau驱动

4.2 安装NVIDIA-CUDA组件

4.3 安装FFTW

4.4 安装cmake

4.5 安装wxWidgets

4.6 安装CTFFIND

4.1 禁用nouveau驱动

操作步骤

步骤 1 使用PuTTY工具,以root用户登录服务器。

步骤 2 执行以下命令查看nouveau驱动是否已禁用

lsmod |grep nouveau

步骤 3 执行以下命令禁用nouveau驱动

新建文件/etc/modprobe.d/disable-nouveau.conf

vim /etc/modprobe.d/disable-nouveau.conf

添加如下两行:

blacklist nouveau

options nouveau modeset=0

步骤 4 备份并生成新的initramfs文件

cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img

dracut -f /boot/initramfs-$(uname -r).img $(uname -r)

步骤 5 重启机器

reboot

----结束

4.2 安装NVIDIA-CUDA组件

操作步骤

步骤 1 使用PuTTY工具,以root用户登录服务器。

步骤 2 执行以下命令确认nouveau驱动已禁用(回显为空)

lsmod |grep nouveau

步骤 3 执行以下命令安装NVIDIA-CUDA组件:

wget https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda_11.4.0_470.42.01_linux_sbsa.run

sudo sh cuda_11.4.0_470.42.01_linux_sbsa.run

步骤 4 配置环境变量:

export PATH=/usr/local/cuda-11.4/bin:$PATH

export LD_LIBRARY_PATH=/usr/local/cuda-11.4/lib64:$LD_LIBRARY_PATH

步骤 5 执行以下命令验证

nvcc --version

----结束

4.3 安装FFTW

操作步骤

步骤 1 使用PuTTY工具,以root用户登录服务器。

步骤 2 执行以下命令下载FFTW安装包

wget https://fftw.org/pub/fftw/fftw-3.3.8.tar.gz

步骤 3 执行以下命令解压FFTW安装包

tar –zxvf fftw-3.3.8.tar.gz

步骤 4 执行以下命令进入FFTW安装包

cd fftw-3.3.8

步骤 5 执行以下命令安装FFTW:

export CC=clang CXX=clang++ FC=flang

./bootstrap.sh

./configure --prefix=/path/to/FFTW --enable-single --enable-float --enable-neon --enable-shared --enable-threads --enable-openmp --enable-mpi CFLAGS="-O3 -fomit-frame-pointer -fstrict-aliasing"

make -j && make install

make clean

./configure --prefix=/path/to/FFTW --enable-long-double --enable-shared --enable-threads --enable-openmp --enable-mpi CFLAGS="-O3 -fomit-frame-pointer -fstrict-aliasing"

make -j && make install

make clean

./configure --prefix=/path/to/FFTW --enable-shared --enable-threads --enable-openmp --enable-mpi CFLAGS="-O3 -fomit-frame-pointer -fstrict-aliasing"

make -j && make install

步骤 6 执行以下命令配置环境变量:

export PATH=/path/to/FFTW/bin:$PATH

export LD_LIBRARY_PATH=/path/to/FFTW/lib:$LD_LIBRARY_PATH

4.4 安装cmake

操作步骤

步骤 1 使用PuTTY工具,以root用户登录服务器。

步骤 2 执行以下命令安装cmake:

wget https://cmake.org/files/v3.8/cmake-3.8.1.tar.gz

tar -zxvf cmake-3.8.1.tar.gz

cd cmake-3.8.1

./configure --prefix=/path/to/CMAKE

make -j64

make install

步骤 3 执行以下命令配置环境变量:

export PATH=/path/to/CMAKE/bin:$PATH

4.5 安装wxWidgets

操作步骤

步骤 1 使用PuTTY工具,以root用户登录服务器。

步骤 2 执行以下命令安装wxWidgets:

wget https://github.com/wxWidgets/wxWidgets/archive/refs/tags/v3.0.5.tar.gz

tar -zxvf v3.0.5.tar.gz

cd wxWidgets-3.0.5

./configure --disable-gui

make -j16

make install

步骤 3 执行以下命令配置环境变量:

ldconfig

步骤 4 执行以下命令进行验证:

wx-config --version

4.6 安装CTFFIND

操作步骤

步骤 1 使用PuTTY工具,以root用户登录服务器。

步骤 2 执行以下命令解压ctffind:

wget https://grigoriefflab.umassmed.edu/system/tdf?path=ctffind-4.1.14.tar.gz&file=1&type=node&id=26

tar -zxvf ctffind-4.1.14.tar.gz

cd ctffind-4.1.14

步骤 3 执行以下命令修改文件:

vim src/core/matrix.cpp

修改第7行的代码

7 #define _AL_SINCOS(x, s, c) s = sinf(x); c = cosf(x);

原始内容:

7 #define _AL_SINCOS(x, s, c) __asm__ ("fsincos" : "=t" (c), "=u" (s) : "0" (x))

1.png

步骤 4 执行以下命令进行编译安装:

yum install -y libjpeg* libtiff* fftw*

autoreconf -f -i

./configure --prefix=/path/to/ctffind --disable-mkl --enable-openmp --enable-debugmode

vim Makefile

将CFLAGS CPPFLAGS CXXFLAGS中的-O2改成-O0

296 CFLAGS = -g –O0

297 CPP = clang -E

298 CPPFLAGS = -O0 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DDEBUG

299 CXX = clang++

300 CXXCPP = clang++ -E

301 CXXDEPMODE = depmode=gcc3

302 CXXFLAGS = -O0 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DDEBUG -fopenmp

原始内容:

296 CFLAGS = -g -O2

297 CPP = clang -E

298 CPPFLAGS = -O2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DDEBUG

299 CXX = clang++

300 CXXCPP = clang++ -E

301 CXXDEPMODE = depmode=gcc3

302 CXXFLAGS = -O2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DDEBUG -fopenmp

2.png

make & make install

步骤 5 执行以下命令配置环境变量:

export PATH=/path/to/install/ctffind/bin:$PATH

----结束

5 获取源码

操作步骤

步骤 1 下载RELION安装包“RELION-3.1.2.tar.gz”。

下载地址:https://github.com/3dem/relion/archive/refs/tags/3.1.2.tar.gz。

步骤 2 使用SFTP工具将RELION安装包上传至服务器/path/to/RELION目录。

----结束

6 编译和安装

操作步骤

步骤 1 使用PuTTY工具,以root用户登录服务器。

步骤 2 执行以下命令进入主程序安装目录:

cd /path/to/RELION

步骤 3 执行以下命令解压安装包:

tar -xvf 3.1.2.tar.gz

步骤 4 执行以下命令进入解压后路径:

cd relion-3.1.2

mkdir build

步骤 5 执行以下命令进行配置:

yum install -y libtiff-* fltk* fltk-devel*

yum -y install xorg-x11-xauth

cd build

export FFTW_HOME=/path/to/FFTW

export FFTW_LIB=$FFTW_HOME/lib

export FFTW_INCLUDE=$FFTW_HOME/include

cmake -DBUILD_SHARED_LIBS=OFF -DCUDA=ON -DCudaTexture=ON -DCUDA_ARCH=80 -DCMAKE_BUILD_TYPE=release -DCMAKE_INSTALL_PREFIX=/path/to/install/RELION ..

(-DCUDA_ARCH的值要对应显卡的计算能力,最低35,如A100为80,V100为70,具体可通过Nvidia网页进行查看)

步骤 6 执行以下命令开始编译:

make -j40

make -j40 install

步骤 7 执行以下命令查看RELION版本:

/path/to/install/RELION/bin/relion_refine_mpi --help

3.png

步骤 8 执行以下命令设置环境变量:

export PATH=/path/to/install/RELION/bin:$PATH

----结束

7 运行和验证

操作步骤

步骤 1 使用PuTTY工具,以root用户登录服务器。

步骤 2 执行以下命令进入测试目录:

cd /path/to/CASE

步骤 3 执行以下命令解压算例文件:

tar xvf relion_benchmark.tar.gz

步骤 4 执行以下命令进入解压后的目录:

cd relion_benchmark

步骤 5 执行以下命令运行RELION测试:

mkdir class3d

yum -y install time

time -p mpirun --allow-run-as-root -n 4 relion_refine_mpi --j 24 --gpu 0 --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

4.png

----结束

8 更多资源

RELION Github:

https://github.com/3dem/relion

RELION 官网:

https://relion.readthedocs.io/en/latest/Installation.html#download-relion

收藏举报
Level 1
0
帖子
0
粉丝
0
获赞