Jaistには3つスパコンがあります。
学生でもどれも自由に使えます。
この辺りが他の大学と違うところでしょうか?
今回はつい最近と言っても1年くらい経ちますが,リニューアルされた
スパコンKagayakiでのPythonでのMPIの使い方。
公式にはPythonはサポートしてません。
Anaconda
いろいろ試したのですが,これが一番。
スーパーユーザ権限がないのでローカルにインストールし,パスを設定します。
$ cat ~/.bashrc # >>> conda initialize >>> # !! Contents within this block are managed by 'conda init' !! __conda_setup="$('~/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)" if [ $? -eq 0 ]; then eval "$__conda_setup" else if [ -f "~/anaconda3/etc/profile.d/conda.sh" ]; then . "~/anaconda3/etc/profile.d/conda.sh" else export PATH="~/anaconda3/bin:$PATH" fi fi unset __conda_setup # <<< conda initialize <<<
実行コード
mpi.py
#!/bin/env python
# coding:utf-8
from mpi4py import MPI
comm = MPI.COMM_WORLD
size = comm.Get_size()
rank = comm.Get_rank()
name = MPI.Get_processor_name()
print(f"size={size},rank={rank},name={name}")
mpi.sh
. ~/.bashrc if [ ! -d venv ];then python -m venv venv fi . venv/bin/activate LOG=${0%.*}.log pip install -r requirements.txt > $LOG mpirun -np 4 python mpi.py > mpi.log 2>&1
デフォルトではCSHなのでCSHでキックコードを作成し,中ではBashを使います
PBS_mpi.sh
#PBS -N mpi #PBS -j oe #PBS -l select=1 #PBS -q SINGLE source /etc/profile.d/modules.csh module purge module load openmpi module load intel cd ${PBS_O_WORKDIR} bash mpi.sh
実行
$ qsub PBS_mpi.sh
結果
$ cat mpi.log size=4,rank=1,name=spcc-250 size=4,rank=3,name=spcc-250 size=4,rank=0,name=spcc-250 size=4,rank=2,name=spcc-250