Relion 3.1ベンチマーク

Relionはクライオ電子顕微鏡法による構造解析において広く用いられているソフトウェアです。弊社水冷NVIDIA GeForce RTX 3090を2台搭載したワークステーションを用いて、2D classificationと3D classificationを対象にしたRelion 3.1のベンチマークを行った結果をご紹介いたします。

ハードウェア構成

  • CPU: AMD Ryzen Threadripper PRO 3955WX
  • メモリ: 128GB (8x 16GB DDR4-3200 ECC Reg.)
  • GPU: 2x NVIDIA GeForce RTX 3090
  • ストレージ: 2TB M.2 PCIe Gen4x4
  • PSU: 1500W ATX電源

ソフトウェア等のバージョン

OSはUbuntu 20.04.4で, コンパイラにGNUコンパイラ、MPIライブラリにOpenMPIを用いました。コンパイラ、MPIライブラリおよびその他ソフトウェアパッケージはUbuntu標準のRepositoryからaptでインストールしています。NVIDIA DriverおよびCUDAは、NVIDIA社のWebサイトからダウンロードした最新版インストーラを使ってインストールしました。主要なソフトウェアバージョンは以下の通りです。

  • OS: Ubuntu 20.04.4 LTS (kernel 5.13.0-48)
  • コンパイラ: GNUコンパイラ 9.4.0
  • MPI: OpenMPI 4.0.3
  • NVIDIA Driver: 515.48.07
  • CUDA: CUDA 11.6.2
  • Relion: Relion 3.1.3

Relion 3.1.3のソースコードをダウンロードして、これらのソフトウェアを用いてコンパイルを行いました。ビルド時のオプションは基本的にデフォルトのままですが、GeForce RTX 3090向けにCMakeオプションで”-DCUDA_ARCH=86″を指定しています。

ベンチマーク内容と結果

以下のURLに記載されているベンチマーク向けのデータ(rellion_benchmark.tar.gz)を用いて、3D classificationと2D classificationのベンチマークを実施しました。

https://www3.mrc-lmb.cam.ac.uk/relion//index.php/Benchmarks_&_computer_hardware

各テスト実行時のコマンドは以下の通りです。データおよびスクラッチファイルの場所は、OSがインストールされているディスク(M.2 SSD)と同じディスク上に保存されています。

3d classification

time mpirun -n 3 relion_refine_mpi --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 --o class3d \
--scratch_dir /home/otb/scratch --gpu 0:1 --pool 100 --j 4 \
--dont_combine_weights_via_disc |tee relion.log

2d classification

time mpirun -n 3 relion_refine_mpi --i Particles/shiny_2sets.star \
--ctf --iter 25 --tau2_fudge 2 --particle_diameter 360 --K 200 --zero_mask \
--oversampling 1 --psi_step 6 --offset_range 5 --offset_step 2 --norm \
--scale --random_seed 0 --o class2d --scratch_dir /home/otb/scratch --gpu 0:1 \
--pool 100 --j 4 --dont_combine_weights_via_disc |tee 2dclass.log

実行結果は以下の通りです。経過時間はtimeコマンドで得られたrealの項目の値です。

ご留意事項:ベンチマーク結果は一例です。ハードウェア構成や個体差、BIOSバージョンおよびソフトウェアのバージョンなどによって結果は変わる可能性があります。