EMAN2のパッケージには自身で用意した openmpi が入っている。
EMAN2を使用するためにPATH環境変数に EMAN2のbin を入れるのだが、そうすると openmpi の優先順位も変更されてしまう...

PATH環境変数をきちんとマネジメントできていれば大した問題ではないのでしょうが、
(そのためにEnvironmentModulesを使うのはいいかも)
そもそも openmpi を一本化すればいいのでは?っと思う.

EMAN2のopenmpiはdl supportを無効にしているのが必要みたい。
CentOS7で用意されているopenmpiは dl supportが入っている。
このdl supportが無効だと openmpi の CUDA-aware が使えない. https://www.open-mpi.org/faq/?category=buildcuda そもそもCUDA-awareが有効なアプリがあったらだけど

っで、OpenMPIにてdl supportが無効な openmpi を作成した。
ここでは、この openmpi をEMAN2に適用させてみる。

情報元https://blake.bcm.edu/emanwiki/EMAN2/Parallel/Mpi

EMAN2謹製openmpiを外す

参照先:https://blake.bcm.edu/emanwiki/EMAN2/Install/BinaryInstallAnaconda/2.3#Use_system_OpenMPI

まずは、EMAN2に内包されている openmpi を外す

[root@c ~]# export PATH=/Appl/eman2.3/bin:$PATH
[root@c ~]#
[root@c ~]# which python
/Appl/eman2.3/bin/python
 
[root@c ~]# which conda
/Appl/eman2.3/bin/conda
 
[root@c ~]# which mpirun
/Appl/eman2.3/bin/mpirun
 
[root@c ~]# conda remove openmpi --force
 
## Package Plan ##
 
  environment location: /Appl/eman2.3
 
  removed specs:
    - openmpi
 
 
The following packages will be REMOVED:
 
  openmpi-2.0.2-0
 
 
Proceed ([y]/n)? y
 
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
 
[root@c ~]# which mpirun
/usr/bin/which: no mpirun in (/Appl/eman2.3/bin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/pbs/bin:/opt/pbs/sbin:/root/bin)
 
[root@c ~]#

*この段階で Make Initial Modelを実行したら、実行はされるが「Failed to import MPI...」と言われる

dl supportが無効な openmpiをインストール

参照OpenMPI

dl supportが無効な openmpi を使ってPydusaを再構築

Pydusaって何?の世界なのだが、https://sourceforge.net/projects/pydusa/には
「Pydusa is a package for parallel programming using Python. It contains a module for doing MPI programming in Python. We have added parallel solver packages such as Parallel SuperLU for solving sparse linear systems.」
とある。

参照先には

export GIT_PYDUSA_BRANCH=v20180515
conda build <path to EMAN2 directory>/recipes/pydusa --numpy 1.13 --no-test

とあるが、まずGIT_PYDUSA_BRANCHって何?調べるとpydusaをgitで取得する際のバージョンを指定するようで、
v20180515が最新で、PydusaのGitHubサイトhttps://github.com/cryoem/pydusa/releases
見ると、v20180515が最新のご様子。
condaでbuildをしている最中にダウンロードするとかで必要なのかも。
っで、実行するとpytzがないといわれる。事前に

[root@c ~]# which pip
/Appl/eman2.3/bin/pip
 
[root@c ~]# pip install pytz
 
[root@c ~]# export PATH=/usr/lib64/openmpi/bin:$PATH
[root@c ~]# export LD_LIBRARY_PATH=/usr/lib64/openmpi/lib:$LD_LIBRARY_PATH

が必要みたい。
そのうえで

[root@c ~]# conda build /Appl/eman2.3/recipes/pydusa --numpy 1.13 --no-test

を実行した。
どうやら一緒にfftwもコンパイルされるみたい

作ったpydusaを反映させる

参照先の

conda install fftw-mpi --force-reinstall --override-channels -c file://<path to EMAN2 directory>/conda-bld -c defaults
conda install pydusa=1.15=np113* --force-reinstall --override-channels -c file://<path to EMAN2 directory>/conda-bld -c defaults

に該当する部分

[root@c ~]# conda install fftw-mpi --force-reinstall --override-channels -c file:///Appl/eman2.3/conda-bld -c defaults
Collecting package metadata: done
Solving environment: |
The environment is inconsistent, please check the package plan carefully
The following packages are causing the inconsistency:
 
  - cryoem/linux-64::pydusa==1.15=np113_11
  - cryoem/linux-64::eman-deps==14.1=1
  - cryoem/linux-64::fftw-mpi==3.3.6=2
done
 
## Package Plan ##
 
  environment location: /Appl/eman2.3
 
  added / updated specs:
    - fftw-mpi
 
 :
 :
[root@c ~]#

もうひとつも

[root@c ~]# conda install pydusa=1.15=np113* --force-reinstall --override-channels -c file:///Appl/eman2.3/conda-bld -c defaults
Collecting package metadata: done
Solving environment: /
The environment is inconsistent, please check the package plan carefully
The following packages are causing the inconsistency:
 
  - cryoem/linux-64::pydusa==1.15=np113_11
  - cryoem/linux-64::eman-deps==14.1=1
done
 
## Package Plan ##
 
  environment location: /Appl/eman2.3
 
  added / updated specs:
    - pydusa==1.15[build=np113*]
 
 
The following packages will be downloaded:
 
    package                    |            build
    ---------------------------|-----------------
    pydusa-1.15                |          np113_0          35 KB  local
    ------------------------------------------------------------
                                           Total:          35 KB
 
The following packages will be SUPERSEDED by a higher-priority channel:
 
  pydusa                       cryoem::pydusa-1.15-np113_11 --> Appl/eman2.3/conda-bld::pydusa-1.15-np113_0
 
 
Proceed ([y]/n)? y
 
 
Downloading and Extracting Packages
pydusa-1.15          | 35 KB     | ############################################################################################## | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
[root@c ~]#

てすと

同じくMake Initial Modelを実行してみたが、「Failed to import MPI...」は表示されず素直に実行してくれた。

qsub経由

別途ファイルを作ります。e2projectmanager.pyで計算設定したあと、commandタブをクリックすると
実行されるコマンド行が表示される。これをコピペして、別途qsub用のファイルを作ります
*windowsでXサーバ経由でe2projectmanager.pyのコマンド行をコピペする際、Xmingだと上手くいかなかった...MobaXtermなら行けた

#!/bin/bash
#PBS -q workq
#PBS -l nodes=s:ppn=4
#PBS -j oe
 
cd $PBS_O_WORKDIR
 
export PATH=/usr/lib64/openmpi/bin:/Appl/eman2.3/bin:$PATH
export LD_LIBRARY_PATH=/usr/lib64/openmpi/lib
#
#あるいはEnvironmentModulesを使って
# 「module load eman2.3 mpi」 とかでもいいかも
#
 
e2refine_easy.py --input=sets/best-bad1__ctf_flip_lp12.lst \
--model=initial_models/model_00_01.hdf --targetres=15.0 \
--speed=5 --sym=d2 --iter=2 --mass=400.0 --apix=0.0 \
--classkeep=0.9 --m3dkeep=0.8 \
--parallel=mpi:3:$TMPDIR --threads=4 \
--automaskexpand=-1 --ampcorrect=auto

なファイル(Initial_refinements.sh)を作って

qsub Initial_refinements.sh

で実行します


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2019-06-23 (日) 00:14:24 (121d)