Open Catalyst Project汎用力場を使うための設定

Pythonの設定

Open Catalyst Projectで公開されているインストール手順に沿って、LAMMPSから汎用力場を使うために必要な設定手順を説明します。

実際に計算を行うマシン(計算サーバーにジョブ投入する場合には、その計算サーバー上)でインストールを行ってください。

  1. (任意)CUDAの用意

    GPUを使って計算を行うには、CUDA Toolkitがインストールされている必要があります。

    NVIDIAのダウンロードページからCUDA Toolkit 10.2(Ampere世代GPUの場合は11.1)をダウンロードし、インストールしてください。

    NVIDIAドライバがインストールされていない場合は、そちらもインストールしてください。

  2. conda環境の用意

    Python環境としてcondaを使用します。現在condaをお使いでない場合は、必要最小限の構成であるMinicondaを推奨します。

    Minicondaのページからインストーラーをダウンロードし、インストールしてください。

    Windowsで環境変数 PATH を変更しない設定でインストールした場合、以降の作業はスタートメニューからAnaconda Promptを起動して行ってください。

  3. ocp-modelsリポジトリの用意

    gitコマンドが使える場合は

    git clone https://github.com/Open-Catalyst-Project/ocp.git
    

    または https://github.com/Open-Catalyst-Project/ocp/archive/refs/heads/master.zip をダウンロード・解凍します。

    Ampere世代GPUを使う場合は env.gpu.yml を開き、次の2行を変更してください。

    変更前
    - cudatoolkit=10.2
    - -f https://pytorch-geometric.com/whl/torch-1.9.0+cu102.html
    
    変更後
    - cudatoolkit=11.1
    - -f https://pytorch-geometric.com/whl/torch-1.9.0+cu111.html
    
  4. インストール

    リポジトリのフォルダに移動し、

    pip install conda-merge
    

    を実行します。次に、ocp-models仮想環境を作成します。

    CPUで計算を行う(GPUを使わない)場合
     conda-merge env.common.yml env.cpu.yml > env.yml
     conda env create -f env.yml
     conda activate ocp-models
    
    GPUで計算を行う場合
     conda-merge env.common.yml env.gpu.yml > env.yml
     conda env create -f env.yml
     conda activate ocp-models
    
    macOSで、かつCPUで計算を行う場合
     conda env create -f env.common.yml
     conda activate ocp-models
     MACOSX_DEPLOYMENT_TARGET=10.9 CC=clang CXX=clang++ pip install torch-cluster torch-scatter torch-sparse torch-spline-conv -f https://pytorch-geometric.com/whl/torch-1.9.0+cpu.html
    

    最後に

    pip install -e .
    

    を実行してリポジトリの内容をパッケージとしてインストールします。

    ヒント

    ここで作成したocp-models仮想環境を削除するには、

    conda deactivate
    conda remove -n ocp-models --all
    

    を実行します。

    学習済みのモデル(ptファイル)はNanoLabo Toolに同梱されているため、ダウンロードの手順を行う必要はありません。

NanoLaboへの設定

  • ローカル(NanoLaboを使っているマシン)で実行する場合

    画面左上のアイコン mainmenuicon から Properties ‣ Python (またはForce Field設定画面の Setting Python ボタン)でpython実行ファイルのパスを設定します。

    Windowsでは condaのインストール先\envs\ocp-models\python.exe 、Linux・macOSでは condaのインストール先/envs/ocp-models/bin/python にあります。

  • リモート(計算サーバー等)で実行する場合

    condaのインストール先が ~/anaconda3 または ~/miniconda3 の場合は、デフォルトで追加される LD_LIBRARY_PATH で動作しますので、設定は必要ありません。

    他の場所にインストールした場合は、画面左上のアイコン mainmenuicon から Network ‣ SSH server を開き、ジョブスクリプトに LD_LIBRARY_PATH を追加してください。

    export LD_LIBRARY_PATH=(condaのインストール先)/envs/ocp-models/lib:$LD_LIBRARY_PATH
    

LAMMPSを直接実行する場合

NanoLabo Tool同梱の実行ファイル lammps_oc20 を使用します。MPI並列計算、ビリアル応力の計算(NPTアンサンブル、セル最適化)には非対応です。

Linux・macOSでは、実行時にPythonの動的ライブラリを使用しますので、環境変数 LD_LIBRARY_PATH を設定してください。

$ export LD_LIBRARY_PATH=(condaのインストール先)/envs/ocp-models/lib:$LD_LIBRARY_PATH

また、Linuxでは環境変数 OPAL_PREFIX を設定してください。

デフォルトの場所にインストールした場合の例
$ export OPAL_PREFIX=/opt/AdvanceSoft/NanoLabo/exec.LINUX/mpi

LAMMPSから oc20_driver.py を呼び出すことで動作しますので、NanoLabo Toolインストール先の oc20driver フォルダをPythonのモジュール検索パスに追加してください。例えば、環境変数 PYTHONPATH に追加します。

Linuxの例
$ export PYTHONPATH=(NanoLabo Toolのインストール先)/oc20driver:$PYTHONPATH

LAMMPSの入力ファイル中で、以下のようにpair_styleを設定します。

CPUで計算を行う(GPUを使わない)場合
pair_style oc20
pair_coeff * * <model> <元素名1 元素名2 ...>
GPUで計算を行う場合
pair_style oc20/gpu
pair_coeff * * <model> <元素名1 元素名2 ...>

パラメーター

model
使用するグラフニューラルネットワークのモデル
DimeNet++, GemNet-dT, CGCNN, SchNet, SpinConv のいずれかを指定
元素名 LAMMPSのatom type毎に、対応する元素名を列挙