スーパーコンピュータでサンプルプログラムを動かす(mpi4py)
2023/04/13
プログラミング本記事の内容
本記事では、スーパーコンピュータ(Wisteria)上で、Python(mpi4py)で書かれたサンプルプログラムを動かす手順を紹介する。
手順
cd /work/<プロジェクトコード>/<ユーザーID>
mkdir sampleshow_module今回はmpi4py/3.1.1とgcc/8.3.1/fjmpi/1.2.37モジュール環境を利用する。
module load gcc/8.3.1
module load fjmpi/1.2.37
module load mpi4py/3.1.1module listCurrently Loaded Modulefiles:
1) gcc/8.3.1 2) fjmpi/1.2.37 3) mpi4py/3.1.1モジュールを消去したい場合は"module purge"を使う。
module purge
module listNo Modulefiles Currently Loaded.■ moduleコマンドのオプション
| オプション | 内容 |
| avail | 利用可能な環境の一覧を表示 |
| list | 現在ロードしている環境一覧を表示 |
| load | 指定した環境のロード |
| unload | 指定した環境のアンロード |
| switch | 環境のロードとアンロードを同時に実行 |
| purge | 環境をすべてアンロード |
cd sample
python3 -mvenv venv
source venv/bin/activatepip3 install --upgrade pip setuptools
pip3 install pandastry:
from mpi4py import MPI
print("mpi4py Success!")
except Exception as e:
print(f"Error: {e}")
try:
import pandas
print("Pandas Success!")
except Exception as e:
print(f"Error: {e}")#!/bin/sh
#PJM -L rscgrp=debug-o
#PJM -L node=4
#PJM --mpi proc=4
#PJM -L elapse=0:10:00
#PJM -g <プロジェクトコード>
#PJM -j
module purge
module load gcc/8.3.1
module load fjmpi/1.2.37
module load mpi4py/3.1.1
export LD_PRELOAD=/usr/lib/FJSVtcs/ple/lib64/libpmix.so
source venv/bin/activate
mpiexec -n ${PJM_MPI_PROC} python3 sample.pyプロジェクトコードについては各自割り当てられたものを記入する。また、ジョブクラスには"debug-o"を指定した。使用可能なジョブクラスについては以下のリンクを参照。
pjsub sample.sh■ ジョブ管理コマンド
| オプション | 内容 |
| pjsub | ジョブの投入 |
| pjdel | ジョブの削除 |
| pjstat | ジョブの状態 |
pjsubなどのコマンドは富士通独自のもので、使用するスーパーコンピュータによって異なる。
Inportエラーが発生しておらず、mpi4pyの読み込みができていることを確認する。
Unloading odyssey
WARNING: Did not unuse /work/opt/local/modules/modulefiles/WO/odyssey/core
WARNING: Did not unuse /work/opt/local/modules/modulefiles/WO/odyssey/util
mpi4py Success!
Pandas Success!
mpi4py Success!
Pandas Success!
mpi4py Success!
Pandas Success!
mpi4py Success!
Pandas Success!