このトピックでは、Elastic High Performance Computing (E-HPC) クラスターで LAMMPS を実行して、3d レナードジョーンズ溶融モデルに基づく製造シミュレーションを実行し、シミュレーション結果を視覚化する方法について説明します。
背景情報
Large-scale Atomic/Molecular Massively Parallel Simulator (LAMMPS) は、古典的な分子動力学プログラムです。これは、固体材料 (金属、半導体)、ソフトマター (生体分子、ポリマー)、および粗視化またはメゾスコピックシステムのポテンシャルを備えています。
高性能で柔軟な E-HPC クラスターは、複雑なエンジニアリングと力学の補助分析を提供します。これらの利点を活用して、大量のシミュレーションを実行し、製品の構造とパフォーマンスを最適化できます。製造シミュレーションには、ますます多くのソフトウェアパッケージが使用されています。
準備
E-HPC クラスターを作成します。詳細については、「ウィザードを使用してクラスターを作成する」をご参照ください。
この例では、次のパラメーター構成が使用されています。
パラメーター
説明
ハードウェア設定
デプロイモードを標準に設定します。管理ノード 2 つ、計算ノード 1 つ、ログオンノード 1 つを指定します。計算ノードとして 32 個以上の vCPU を持つインスタンスタイプを選択します。たとえば、ecs.c7.8xlarge を選択できます。
説明この例は、計算要件が比較的低いアプリケーション向けに設計されています。アプリケーションの計算要件に基づいて、計算ノードの数を調整します。
ソフトウェア設定
CentOS 7.6 パブリックイメージと PBS スケジューラーをデプロイします。VNC をオンにします。
クラスターユーザーを作成します。詳細については、「ユーザーを作成する」をご参照ください。
ユーザーは、クラスターへのログオン、ソフトウェアのコンパイル、ジョブの送信に使用されます。この例では、次の設定が使用されています。
ユーザー名: testuser
ユーザーグループ: sudo 権限グループ
ソフトウェアをインストールします。詳細については、「ソフトウェアをインストールする」をご参照ください。
次のソフトウェアをインストールします。
lammps-openmpi V31Mar17
openmpi V1.10.7
VMD V1.9.3
手順 1: クラスターに接続する
次のいずれかの方法を使用してクラスターに接続します。この例では、ユーザー名として testuser を使用します。クラスターに接続すると、/home/testuser
に自動的にログオンします。
E-HPC クライアントを使用してクラスターにログオンする
クラスターのスケジューラーは PBS である必要があります。 E-HPC クライアントをダウンロードしてインストールし、クライアントに必要な環境をデプロイしていることを確認します。詳細については、「E-HPC クライアントの環境をデプロイする」をご参照ください。
E-HPC クライアントを起動してログオンします。
左側のナビゲーションペインで、[セッション管理] をクリックします。
[セッション管理] ページの右上隅にある [ターミナル] をクリックして、ターミナルウィンドウを開きます。
E-HPC コンソールを使用してクラスターにログオンする
E-HPC コンソール にログオンします。
上部ナビゲーションバーの左上隅で、リージョンを選択します。
左側のナビゲーションペインで、[クラスター] をクリックします。
[クラスター] ページで、クラスターを見つけて [接続] をクリックします。
[接続] パネルで、ユーザー名とパスワードを入力し、[SSH 経由で接続] をクリックします。
手順 2: ジョブを送信する
次のコマンドを実行して、lj.in という名前のサンプルファイルを作成します。
vim lj.in
サンプルファイル:
# 3d Lennard-Jones melt variable x index 1 variable y index 1 variable z index 1 variable xx equal 20*$x variable yy equal 20*$y variable zz equal 20*$z units lj atom_style atomic lattice fcc 0.8442 region box block 0 ${xx} 0 ${yy} 0 ${zz} create_box 1 box create_atoms 1 box mass 1 1.0 velocity all create 1.44 87287 loop geom pair_style lj/cut 2.5 pair_coeff 1 1 1.0 1.0 2.5 neighbor 0.3 bin neigh_modify delay 0 every 20 check no fix 1 all nve dump 1 all xyz 100 sample.xyz run 10000
次のコマンドを実行して、lammps.pbs という名前のジョブスクリプトファイルを作成します。
vim lammps.pbs
サンプルスクリプト:
説明この例では、計算ノードは 32 個の vCPU と 32 個の Message Passing Interface (MPI) プロセスを使用して高性能計算を実行します。使用する計算ノードの実際の仕様に基づいて vCPU の数を構成します。 vCPU の数は 32 より大きい必要があります。
#!/bin/sh #PBS -l select=1:ncpus=32:mpiprocs=32 #PBS -j oe export MODULEPATH=/opt/ehpcmodulefiles/ # module コマンドが依存する環境変数。 module load lammps-openmpi/31Mar17 module load openmpi/1.10.7 echo "run at the beginning" # 開始時に実行 mpirun lmp -in ./lj.in # lj.in ファイルの実際のパスを使用します。
次のコマンドを実行してジョブを送信します。
qsub lammps.pbs
生成されたジョブ ID が 0.scheduler であることを示す次のコマンド出力が返されます。
0.scheduler
手順 3: ジョブの結果を表示する
次のコマンドを実行して、ジョブの結果を表示します。
cat lammps.pbs.o0
説明ジョブの標準出力パスを指定しない場合、出力ファイルはスケジューラーの動作に基づいて生成されます。デフォルトでは、出力ファイルは
/home/<username>/
ディレクトリに保存されます。たとえば、この例の出力は/home/testuser/lammps.pbs.o0
ディレクトリに保存されます。次のコードは、想定される戻り値の出力の例を示しています。
...... Per MPI rank memory allocation (min/avg/max) = 3.777 | 3.801 | 3.818 Mbytes Step Temp E_pair E_mol TotEng Press 0 1.44 -6.7733681 0 -4.6134356 -5.0197073 10000 0.69814375 -5.6683212 0 -4.6211383 0.75227555 Loop time of 9.81493 on 32 procs for 10000 steps with 32000 atoms Performance: 440145.641 tau/day, 1018.856 timesteps/s 97.0% CPU use with 32 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- Pair | 6.0055 | 6.1975 | 6.3645 | 4.0 | 63.14 Neigh | 0.90095 | 0.91322 | 0.92938 | 0.9 | 9.30 Comm | 2.1457 | 2.3105 | 2.4945 | 6.9 | 23.54 Output | 0.16934 | 0.1998 | 0.23357 | 4.3 | 2.04 Modify | 0.1259 | 0.13028 | 0.13602 | 0.8 | 1.33 Other | | 0.06364 | | | 0.65 Nlocal: 1000 ave 1022 max 986 min Histogram: 5 3 6 3 4 4 2 2 1 2 Nghost: 2705.62 ave 2733 max 2668 min Histogram: 1 1 0 3 7 5 4 5 4 2 Neighs: 37505 ave 38906 max 36560 min Histogram: 7 3 2 4 5 2 3 3 2 1 Total # of neighbors = 1200161 Ave neighs/atom = 37.505 Neighbor list builds = 500 Dangerous builds not checked Total wall time: 0:00:10
VNC を使用してジョブの結果を表示します。
VNC を有効にします。
説明VNC に必要なポートが、クラスターが属するセキュリティグループで有効になっていることを確認します。コンソールを使用する場合、システムはポート 12016 を自動的に有効にします。クライアントを使用する場合は、ポートを手動で有効にする必要があります。ポート 12017 では、1 人のユーザーのみが VNC Viewer ウィンドウを開くことができます。複数のユーザーが VNC Viewer ウィンドウを開く必要がある場合は、ポート 12017 から始まる対応する数のポートを有効にする必要があります。
クライアントを使用する
左側のナビゲーションペインで、[セッション管理] をクリックします。
[セッション管理] ページの右上隅にある [VNC] をクリックして、VNC Viewer を開きます。
コンソールを使用する
E-HPC コンソール の左側のナビゲーションペインで、[クラスター] をクリックします。
[クラスター] ページで、クラスターを選択します。 [詳細] > [VNC] を選択します。
VNC を使用して視覚化サービスにリモート接続します。詳細については、「VNC を使用して視覚化サービスを管理する」をご参照ください。
クラウドデスクトップの [仮想化サービス] ダイアログボックスで、[アプリケーション] > [システムツール] > [ターミナル] を選択します。
/opt/vmd/1.9.3/vmd
を実行して、Visual Molecular Dynamics (VMD) を開きます。VMD メインページで、[ファイル] > [新しい分子...] を選択します。
[参照...] ボタンをクリックし、sample.xyz ファイルを選択します。
説明sample.xyz ファイルは /home/testuser/sample.xyz ディレクトリに保存されています。
[ロード] をクリックします。 [VMD 1.9.3 Opengl ディスプレイ] ウィンドウでジョブの結果を表示できます。