以下の手順に従って、京大スパコン camphor 上で EMSES を実行できる状態にしてください。
目的: VSCode からリモートでスパコンに接続できるようにする。
VSCode を起動し、拡張機能 Remote-SSH をインストール
京大スパコン camphor にログイン
TERMINAL を開く
目的: データ領域を確保し、依存環境と EMSES をインストール。
# データ領域の確保
mkdir /LARGE0/gr20001/$USER
ln -s /LARGE0/gr20001/$USER ~/large0
# .bashrc に環境変数を追記
grep -qxF 'module load intel-python' ~/.bashrc || echo 'module load intel-python' >> ~/.bashrc
grep -qxF 'export PATH="$PATH:$HOME/.local/bin"' ~/.bashrc || echo 'export PATH="$PATH:$HOME/.local/bin"' >> ~/.bashrc
exec $SHELL -l
# EMSES (MPIEMSES3D) の導入
mkdir ~/large0/Github
cd ~/large0/Github
git clone https://github.com/CS12-Laboratory/MPIEMSES3D.git
cd MPIEMSES3D
make
# チュートリアルリポジトリの導入
cd ~/large0/Github
git clone https://github.com/CS12-Laboratory/EMSES-tutorials.git
cd EMSES-tutorials
pip install -r requirements.txt
# VSCode で開く
code --reuse-window ~/large0/Github/EMSES-tutorials
目的: 実行ファイルを配置してジョブを投げられる状態にする。
cp ~/large0/Github/MPIEMSES3D/bin/mpiemses3D dshield0/
cp ~/large0/Github/MPIEMSES3D/bin/mpiemses3D dshield1/
cp ~/large0/Github/MPIEMSES3D/bin/mpiemses3D dshield2/
dshield0
ディレクトリでテスト実行cd ~/large0/Github/EMSES-tutorials/dshield0
mysbatch job.sh
※ mysbatch
: plasma.inp の nodes(:) を読み取り、job.sh にプロセス数を設定して sbatch
を実行するカスタムコマンド(camptools)。
実行状況確認
qs # 実行状況
squeue # ジョブ一覧
qgroup # 計算資源の空き状況
latestjob # 最新ジョブの log を tail
ジョブ削除: scancel <job-id>
標準出力: stdout.****.log
標準エラー: stderr.****.log
squeue
に表示がなければ完了stdout/stderr
ログ確認方法 1: .mypython/plot.py
により PNG/GIF を生成
例: phisp_2d_xy.png
方法 2: Jupyter Notebook (dshield0/plot_example.ipynb
)
Python interpreter 設定
venv 利用例:
cd ~/large0
/usr/bin/python3.11 -m venv .venv
# 再インストール
~/large0/.venv/bin/python -m pip install -r ~/large0/Github/EMSES-tutorials/requirements.txt
~/large0/.venv/bin/python -m pip install -U emout
VSCode で ~/large0/.venv/bin/python
を選択
もしくは camphor の Intel-Python を指定
/opt/system/app/intelpython/2024.2.0/bin/python
参考資料
実行時間を延長
dshield0/plasma.inp
内の nstep=100
→ 大きな値へ変更
他設定の実行
dshield1
/ dshield2
の plasma.inp
を確認し、実行比較
可視化と考察
dshield0
と同様に出力を確認・議論
Q1. ds0 の電位分布は? Q2. ds1 での違いは? Q3. ds1 で電子・イオンは? Q4. ds2 での違いは? Q5. 温度変化の影響は?
dshield0~2
を実行・可視化ds0
可視化時は wp=0.0d0
だと emout
が動作しないため、plasma.inp
に wp=1.0d0
等を設定実行がうまくいかない場合はまず M1 の先輩へ相談
先生に質問する際は以下を明記:
最低限確認すべき出力: 電子密度(nd1p)、イオン密度(nd2p)、電位分布(phisp)
B4 メンバー間で議論し、次回チュートリアルで考察内容を共有