ORCA 4.1.0をWSLで使うための設定

いろいろと苦労したのでメモ。
ORCAのパスはC:\orca (/mnt/c/orca)と仮定。

①必要なプログラムのインストール

OpenMPIが必須だが、Ubuntu 18.04 LTSならば

sudo apt-get install openmpi-bin

でver.2.1.1がインストールされる。OpenMPI v.2系統向けのバイナリであればこれで動く(公式にはver.2.1.5にlinkされたバイナリだが)。4.1.0で追加されたConfscriptを使う場合、gawkも必要。

②ライブラリのパス設定

sudo vi /etc/ld.so.conf

でORCAのパス(/mnt/c/orca)を追記。

sudo ldconfig

でライブラリリストを更新。

③実行ファイルのパス設定

ホームディレクトリに戻り、

vi .profile

に、以下のような要領でorcaのパスを追加。

PATH="/mnt/c/orca:$PATH"
source .profile

で変更を反映させる。

④OpenMPIのエラー対策

ORCAを並列で実行すると、Linux kernel CMA support was requested via the btl_vader_single_copy_mechanism MCA variable…とか何とかいうエラーを吐くことがある(私の環境ではOpenMPIがv.2系統でもv.3系統でも吐いた)。これを回避するためには、WSL環境でprocpsサービスを起動し維持する必要がある。

(4-1) ptrace_scope値の設定

sudo vi /etc/sysctl.d/10-ptrace.conf

で、kernel.yama.ptrace_scopeを1から0に変更。

(4-2) procpsサービス起動時のパスワード省略設定

sudo visudo

でsudoersファイルを開き、下記の3行目を追記する。

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL
[WSL上のユーザー名] ALL=NOPASSWD: /etc/init.d/procps

(4-3) WSLでのprocps起動スクリプト設定

WSLのホームディレクトリに以下のシェルスクリプトを作成。

#!/bin/sh
sudo /etc/init.d/procps start
read INPUT

最後のread INPUTは、タスクのアクティブ状態を維持するために入れている。

(4-4) Windowsでのprocps起動スクリプト設定

Windowsのスタートアップフォルダ(C:\Users\WindowsユーザーID\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup)に以下のVBSを格納。

set ws=wscript.createobject("wscript.shell")
ws.run "C:\Windows\System32\bash.exe -c '~/startprocps.sh'",0

もう少しスマートな方法があるかもしれないが、以上の作業で、Windowsログオン時に水面下で(kernel.yama.ptrace_scope=0の設定で)procpsサービスが起動し、OpenMPIのエラーを回避できるようになる。回避せずとも計算自体は可能だが、回避したほうが明らかに安定してJobを走らせることができる(不慮の停止がほとんど起こらなくなる)。

 

【参考にしたWeb sites】
http://www.nwchem-sw.org/index.php/Special:AWCforum/st/id2939/mpirun_nwchem_on_Windows_Subsyst….html
https://pleiades.io/help/clion/attaching-to-local-process.html
https://qiita.com/RyodoTanaka/items/e9b15d579d17651650b7

Windows 10のUbuntuでapacheなどを常駐させる

 

Be the first to comment

Leave a Reply