Jaistには3つスパコンがあります。
 学生でもどれも自由に使えます。
 この辺りが他の大学と違うところでしょうか?
今回はつい最近と言っても1年くらい経ちますが,リニューアルされた
 スパコンKagayakiでのPythonでのMPIの使い方。
公式にはPythonはサポートしてません。
Anaconda
いろいろ試したのですが,これが一番。
 スーパーユーザ権限がないのでローカルにインストールし,パスを設定します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15  | $ 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
1 2 3 4 5 6 7 8 9 10 11  | #!/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
1 2 3 4 5 6 7 8 9  | . ~/.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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16  | #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  | 
実行
1  | $ qsub PBS_mpi.sh  | 
結果
1 2 3 4 5  | $ 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  |